Revision 57a976cd8658776595ba5d201f9b7a26cc35fad3 authored by Nicolas BACQUEY on 26 July 2022, 09:07:38 UTC, committed by Nicolas BACQUEY on 26 July 2022, 13:42:23 UTC
When parsing json schemas in `qcheck_rpc.ml` to generate random RPC
inputs, we had two references that were ultimately circular:
"tree_encoding" and "inode_tree". Parsing those references would cause
stack overflows in `parse_input` and crash the test suite.

This commit adds two special cases to  `parse_input`, similar to those
which are already there for references to "bignum" and
"micheline.alpha.michelson_v1.expression".

However, note that the two new generators are trivial: they always
produce a `Null` json value. Those generators will need to be correctly
implmented in a future commit.
1 parent 5c6a1cd
Raw File
.gitlab-ci.yml
---

# General setup
default:
  interruptible: true

# Basic configuration to guard against double-pipelines
workflow:
  rules:
    # This workflow entry allows pipelines for schedules events in which case it checks the
    # TZ_SCHEDULE_KIND which must be set in the pipeline scheduling interface
    # In either case it sets the TZ_PIPELINE_KIND variable to allow jobs to
    # selectively run on some pipelines but not all.
    # See https://docs.gitlab.com/ee/ci/yaml/README.html#workflow for additional
    # details.
    - if: '$CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS"'
      variables:
        TZ_PIPELINE_KIND: "SCHEDULE"
      when: always
    # Switch between branch pipelines and merge request pipelines.
    # https://docs.gitlab.com/13.12/ee/ci/yaml/README.html#switch-between-branch-pipelines-and-merge-request-pipelines
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
    - if: '$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS'
      when: never
    # This workflow entry allows pipelines for push events (including force-push, push of fixup commits, rebase, etc.)
    - if: '$CI_PIPELINE_SOURCE == "push"'
      when: always
    - when: never # default

# The "manual" stage exists to fix a UI problem that occurs when mixing
# manual and non-manual jobs.
stages:
  - sanity
  - build
  - test
  - test_coverage
  - packaging
  - doc
  - build_release
  - publish_release
  - manual

# All the jobs belonging to a stage X should be in
# .gitlab/ci/X.yml. The stage "manual" is an exception to this rule,
# as jobs of that stage are not logically related.

# If the configuration for stage X is long, it can be broken up in
# subfiles .gitlab/ci/X/a.yml, .gitlab/ci/X/b.yml, etc (see e.g. the
# stage test).

# Finally, templates shall not be defined in one stage file and used
# in another. That is, a template defined in test.yml shall not be
# used in doc.yml (but it's fine to use it in a subfile test/X.yml).

include:
  - .gitlab/ci/templates.yml

  # Actual jobs are defined in these included files

  - .gitlab/ci/packaging.yml
  - .gitlab/ci/opam-ci.yml
  - .gitlab/ci/sanity.yml
  - .gitlab/ci/build.yml
  - .gitlab/ci/test/templates.yml
  - .gitlab/ci/test/lints.yml
  - .gitlab/ci/test/unit.yml
  - .gitlab/ci/test/integration.yml
  - .gitlab/ci/test/liquidity-baking-scripts-integrity.yml
  - .gitlab/ci/test/tezt.yml
  - .gitlab/ci/doc.yml
  - .gitlab/ci/doc/test-scripts.yml
  - .gitlab/ci/build_release.yml
  - .gitlab/ci/publish_release.yml

  # The job `unified_coverage` must have the same name on merge requests and the default branch
  # /!\ Limitations of using rules with include:
  # https://docs.gitlab.com/ee/ci/yaml/includes.html#use-variables-with-include
  # Only run on merge requests that do not have the label `ci--no-coverage`
  - local: .gitlab/ci/test_coverage.yml
    rules:
      - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_LABELS !~ /(?:^|[,])ci--no-coverage(?:$|[,])/'
  # Only run on default branch
  - local: .gitlab/ci/test_coverage_default.yml
    rules:
      # Cannot use TEZOS_DEFAULT_NAMESPACE here, see limitations above
      - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
back to top