name: CI
on:
push:
branches: [main]
pull_request:
workflow_call:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
env:
CARGO_INCREMENTAL: 0
CARGO_TERM_COLOR: always
RUST_BACKTRACE: short
jobs:
lint:
runs-on: ubuntu-26.04
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@683b588c487a69d01f6c6ddf40f036ff682cc2c8 with:
toolchain: stable
- uses: Swatinem/rust-cache@d1527c8f67ef9af357290475d4af4b0fab8f12e0 with:
save-if: ${{ github.ref == 'refs/heads/main' }}
- run: cargo fmt --all --check
- run: shellcheck -x -S warning scripts/*.sh tests/action/fake/bin/gh tests/action/fake/bin/cargo .clusterfuzzlite/build.sh
- run: cargo clippy --workspace --all-targets --locked -- -D warnings
- run: cargo clippy --workspace --lib --no-default-features --locked -- -D warnings
- run: cargo clippy -p echoes --all-targets --no-default-features --features std --locked -- -D warnings
- run: cargo doc --workspace --no-deps --locked
test:
name: test (${{ matrix.name }})
runs-on: ubuntu-26.04
strategy:
fail-fast: false
matrix:
include:
- name: default
run: cargo nextest run --workspace
- name: std
run: cargo nextest run -p echoes --no-default-features --features std
- name: no-std
run: cargo nextest run --workspace --lib --no-default-features
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@683b588c487a69d01f6c6ddf40f036ff682cc2c8 with:
toolchain: stable
- uses: taiki-e/install-action@a4d3f3f761dcd95cce1b72cb61cb6d1963438177 with:
tool: cargo-nextest
- uses: Swatinem/rust-cache@d1527c8f67ef9af357290475d4af4b0fab8f12e0 with:
key: ${{ matrix.name }}
save-if: ${{ github.ref == 'refs/heads/main' }}
- run: ${{ matrix.run }} --locked --cargo-profile fast-test --profile ci
- if: matrix.name == 'default'
run: cargo test --workspace --doc --locked
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always()
with:
name: junit-${{ matrix.name }}
path: target/nextest/ci/junit.xml
if-no-files-found: ignore
witnesses:
runs-on: ubuntu-26.04
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@683b588c487a69d01f6c6ddf40f036ff682cc2c8 with:
toolchain: stable
- run: python3 -B -m unittest discover -s tests -p dependency_witnesses_test.py -v
env:
PYTHONDONTWRITEBYTECODE: "1"
- name: Verify dependency witnesses
id: dependency_witnesses
run: >-
python3 -B tests/dependency_witnesses.py
--request-id "DG-CI-M0-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/dependency-witnesses.json"
--timeout 180
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.dependency_witnesses.outcome != 'skipped'
with:
name: dependency-witnesses
path: ${{ runner.temp }}/dependency-witnesses.json
- name: Verify macro punctuation witnesses
id: dependency_macro_witnesses
run: >-
python3 -B tests/dependency_witnesses.py
--cases tests/fixtures/dependency/macro_cases.json
--request-id "DG-CI-MACRO-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/macro-witnesses.json"
--timeout 180
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.dependency_macro_witnesses.outcome != 'skipped'
with:
name: macro-witnesses
path: ${{ runner.temp }}/macro-witnesses.json
- name: Verify tail scope witnesses
id: dependency_tail_witnesses
run: >-
python3 -B tests/dependency_witnesses.py
--cases tests/fixtures/dependency/tail_cases.json
--request-id "DG-CI-TAIL-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/tail-witnesses.json"
--timeout 180
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.dependency_tail_witnesses.outcome != 'skipped'
with:
name: tail-witnesses
path: ${{ runner.temp }}/tail-witnesses.json
- name: Verify checked constant witnesses
id: dependency_constants_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--request-id "DG-CI-M2-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/dependency-constants-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.dependency_constants_witnesses.outcome != 'skipped'
with:
name: dependency-constants-witnesses
path: ${{ runner.temp }}/dependency-constants-witnesses.json
- name: Verify primitive algebra witnesses
id: dependency_algebra_witnesses
run: |
python3 -B tests/dependency_constants_witnesses.py --cases tests/fixtures/dependency/algebra_cases.json --request-id "DG-CI-M3-${{ github.run_id }}-${{ github.run_attempt }}" --output "${{ runner.temp }}/dependency-algebra-witnesses.json" --timeout 600
python3 -B tests/dependency_constants_witnesses.py --cases tests/fixtures/dependency/algebra_signed_cases.json --request-id "DG-CI-M3-SIGNED-${{ github.run_id }}-${{ github.run_attempt }}" --output "${{ runner.temp }}/dependency-algebra-signed-witnesses.json" --timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.dependency_algebra_witnesses.outcome != 'skipped'
with:
name: dependency-algebra-witnesses
path: |
${{ runner.temp }}/dependency-algebra-witnesses.json
${{ runner.temp }}/dependency-algebra-signed-witnesses.json
- name: Verify primitive reflexive equality witnesses
id: reflexive_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/reflexive_cases.json
--request-id "DG-CI-REFLEXIVE-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/reflexive-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.reflexive_witnesses.outcome != 'skipped'
with:
name: reflexive-witnesses
path: ${{ runner.temp }}/reflexive-witnesses.json
- name: Verify primitive XOR witnesses
id: xor_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/xor_cases.json
--request-id "DG-CI-XOR-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/xor-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.xor_witnesses.outcome != 'skipped'
with:
name: xor-witnesses
path: ${{ runner.temp }}/xor-witnesses.json
- name: Verify native wrapping_add witnesses
id: wrapping_add_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/wrapping_add_cases.json
--request-id "DG-CI-WRAPPING-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/wrapping-add-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.wrapping_add_witnesses.outcome != 'skipped'
with:
name: wrapping-add-witnesses
path: ${{ runner.temp }}/wrapping-add-witnesses.json
- name: Verify boolean match witnesses
id: boolean_match_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/boolean_match_cases.json
--request-id "DG-CI-BOOLMATCH-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/boolean-match-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.boolean_match_witnesses.outcome != 'skipped'
with:
name: boolean-match-witnesses
path: ${{ runner.temp }}/boolean-match-witnesses.json
- name: Verify string-literal concat witnesses
id: concat_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/concat_cases.json
--request-id "DG-CI-CONCAT-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/concat-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.concat_witnesses.outcome != 'skipped'
with:
name: concat-witnesses
path: ${{ runner.temp }}/concat-witnesses.json
- name: Verify boolean literal comparison witnesses
id: boolean_literal_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/boolean_literal_cases.json
--request-id "DG-CI-BOOLLIT-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/boolean-literal-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.boolean_literal_witnesses.outcome != 'skipped'
with:
name: boolean-literal-witnesses
path: ${{ runner.temp }}/boolean-literal-witnesses.json
- name: Verify boolean logic witnesses
id: boolean_logic_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/boolean_logic_cases.json
--request-id "DG-CI-BOOLLOGIC-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/boolean-logic-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.boolean_logic_witnesses.outcome != 'skipped'
with:
name: boolean-logic-witnesses
path: ${{ runner.temp }}/boolean-logic-witnesses.json
- name: Verify compound assignment witnesses
id: compound_assignment_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/compound_assignment_cases.json
--request-id "DG-CI-COMPOUND-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/compound-assignment-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.compound_assignment_witnesses.outcome != 'skipped'
with:
name: compound-assignment-witnesses
path: ${{ runner.temp }}/compound-assignment-witnesses.json
- name: Verify let literal annotation witnesses
id: let_literal_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/let_literal_cases.json
--request-id "DG-CI-LETLIT-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/let-literal-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.let_literal_witnesses.outcome != 'skipped'
with:
name: let-literal-witnesses
path: ${{ runner.temp }}/let-literal-witnesses.json
- name: Verify commutative operand witnesses
id: commutative_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/commutative_cases.json
--request-id "DG-CI-COMMUTE-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/commutative-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.commutative_witnesses.outcome != 'skipped'
with:
name: commutative-witnesses
path: ${{ runner.temp }}/commutative-witnesses.json
- name: Verify integer identity witnesses
id: identities_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/identities_cases.json
--request-id "DG-CI-IDENT-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/identities-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.identities_witnesses.outcome != 'skipped'
with:
name: identities-witnesses
path: ${{ runner.temp }}/identities-witnesses.json
- name: Verify nested conditional witnesses
id: nested_conditionals_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/nested_conditionals_cases.json
--request-id "DG-CI-NESTED-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/nested-conditionals-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.nested_conditionals_witnesses.outcome != 'skipped'
with:
name: nested-conditionals-witnesses
path: ${{ runner.temp }}/nested-conditionals-witnesses.json
- name: Verify early return witnesses
id: early_return_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/early_return_cases.json
--request-id "DG-CI-EARLY-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/early-return-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.early_return_witnesses.outcome != 'skipped'
with:
name: early-return-witnesses
path: ${{ runner.temp }}/early-return-witnesses.json
- name: Verify or-pattern arm and let-else witnesses
id: or_arms_let_else_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/or_arms_let_else_cases.json
--request-id "DG-CI-ORARMS-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/or-arms-let-else-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.or_arms_let_else_witnesses.outcome != 'skipped'
with:
name: or-arms-let-else-witnesses
path: ${{ runner.temp }}/or-arms-let-else-witnesses.json
- name: Verify owned string and empty vector witnesses
id: prelude_owned_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/prelude_owned_cases.json
--request-id "DG-CI-PRELUDE-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/prelude-owned-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.prelude_owned_witnesses.outcome != 'skipped'
with:
name: prelude-owned-witnesses
path: ${{ runner.temp }}/prelude-owned-witnesses.json
- name: Verify widening cast witnesses
id: widening_casts_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/widening_casts_cases.json
--request-id "DG-CI-CASTS-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/widening-casts-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.widening_casts_witnesses.outcome != 'skipped'
with:
name: widening-casts-witnesses
path: ${{ runner.temp }}/widening-casts-witnesses.json
- name: Verify bound order and lifetime elision witnesses
id: bounds_lifetimes_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/bounds_lifetimes_cases.json
--request-id "DG-CI-ELISION-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/bounds-lifetimes-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.bounds_lifetimes_witnesses.outcome != 'skipped'
with:
name: bounds-lifetimes-witnesses
path: ${{ runner.temp }}/bounds-lifetimes-witnesses.json
- name: Verify primitive copy witnesses
id: copy_noops_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/copy_noops_cases.json
--request-id "DG-CI-COPY-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/copy-noops-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.copy_noops_witnesses.outcome != 'skipped'
with:
name: copy-noops-witnesses
path: ${{ runner.temp }}/copy-noops-witnesses.json
- name: Verify constructor return witnesses
id: constructor_returns_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/constructor_returns_cases.json
--request-id "DG-CI-RETURNS-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/constructor-returns-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.constructor_returns_witnesses.outcome != 'skipped'
with:
name: constructor-returns-witnesses
path: ${{ runner.temp }}/constructor-returns-witnesses.json
- name: Verify guard clause witnesses
id: guard_clauses_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/guard_clauses_cases.json
--request-id "DG-CI-GUARDS-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/guard-clauses-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.guard_clauses_witnesses.outcome != 'skipped'
with:
name: guard-clauses-witnesses
path: ${{ runner.temp }}/guard-clauses-witnesses.json
- name: Verify match arm witnesses
id: match_arms_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/match_arms_cases.json
--request-id "DG-CI-ARMS-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/match-arms-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.match_arms_witnesses.outcome != 'skipped'
with:
name: match-arms-witnesses
path: ${{ runner.temp }}/match-arms-witnesses.json
- name: Verify discarded call witnesses
id: discarded_calls_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/discarded_calls_cases.json
--request-id "DG-CI-DISCARD-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/discarded-calls-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.discarded_calls_witnesses.outcome != 'skipped'
with:
name: discarded-calls-witnesses
path: ${{ runner.temp }}/discarded-calls-witnesses.json
- name: Verify adjacent comparison witnesses
id: adjacent_comparisons_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/adjacent_comparisons_cases.json
--request-id "DG-CI-ADJACENT-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/adjacent-comparisons-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.adjacent_comparisons_witnesses.outcome != 'skipped'
with:
name: adjacent-comparisons-witnesses
path: ${{ runner.temp }}/adjacent-comparisons-witnesses.json
- name: Verify integer choice witnesses
id: bool_int_min_max_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/bool_int_min_max_cases.json
--request-id "DG-CI-CHOICE-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/bool-int-min-max-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.bool_int_min_max_witnesses.outcome != 'skipped'
with:
name: bool-int-min-max-witnesses
path: ${{ runner.temp }}/bool-int-min-max-witnesses.json
- name: Verify collection iteration witnesses
id: collection_iteration_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/collection_iteration_cases.json
--request-id "DG-CI-ITER-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/collection-iteration-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.collection_iteration_witnesses.outcome != 'skipped'
with:
name: collection-iteration-witnesses
path: ${{ runner.temp }}/collection-iteration-witnesses.json
- name: Verify string and formatting witnesses
id: strings_format_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/strings_format_cases.json
--request-id "DG-CI-STRINGS-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/strings-format-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.strings_format_witnesses.outcome != 'skipped'
with:
name: strings-format-witnesses
path: ${{ runner.temp }}/strings-format-witnesses.json
- name: Verify bound order and impl lifetime witnesses
id: bounds_impl_lifetimes_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/bounds_impl_lifetimes_cases.json
--request-id "DG-CI-BOUNDS-IMPL-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/bounds-impl-lifetimes-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.bounds_impl_lifetimes_witnesses.outcome != 'skipped'
with:
name: bounds-impl-lifetimes-witnesses
path: ${{ runner.temp }}/bounds-impl-lifetimes-witnesses.json
- name: Verify literal cast, limit and power-of-two witnesses
id: literal_casts_limits_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/literal_casts_limits_cases.json
--request-id "DG-CI-CASTS-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/literal-casts-limits-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.literal_casts_limits_witnesses.outcome != 'skipped'
with:
name: literal-casts-limits-witnesses
path: ${{ runner.temp }}/literal-casts-limits-witnesses.json
- name: Verify literal disjunction witnesses
id: literal_disjunctions_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/literal_disjunctions_cases.json
--request-id "DG-CI-DISJ-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/literal-disjunctions-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.literal_disjunctions_witnesses.outcome != 'skipped'
with:
name: literal-disjunctions-witnesses
path: ${{ runner.temp }}/literal-disjunctions-witnesses.json
- name: Verify return literal typing witnesses
id: return_literal_typing_witnesses
run: >-
python3 -B tests/dependency_constants_witnesses.py
--cases tests/fixtures/dependency/return_literal_typing_cases.json
--request-id "DG-CI-RETURNS-${{ github.run_id }}-${{ github.run_attempt }}"
--output "${{ runner.temp }}/return-literal-typing-witnesses.json"
--timeout 600
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 if: always() && steps.return_literal_typing_witnesses.outcome != 'skipped'
with:
name: return-literal-typing-witnesses
path: ${{ runner.temp }}/return-literal-typing-witnesses.json