diff --git a/.github/actions/get_test_infos/README.md b/.github/actions/get_test_infos/README.md index 092f765a2a..7b753ec736 100644 --- a/.github/actions/get_test_infos/README.md +++ b/.github/actions/get_test_infos/README.md @@ -20,7 +20,6 @@ steps: - id: get-test-infos uses: ./.github/actions/get_test_infos with: - node-version: '20.x' directories: './tests ./examples' exclude-dirs: 'tests/exclude_this_directory examples/exclude_this exclude_all_with_this_dir_in_path' diff --git a/.github/actions/get_test_infos/action.yml b/.github/actions/get_test_infos/action.yml index 9cb22a9737..5c421bb733 100644 --- a/.github/actions/get_test_infos/action.yml +++ b/.github/actions/get_test_infos/action.yml @@ -1,4 +1,4 @@ -name: Get test infos +name: 'Get test infos' description: 'Gets a list of test info objects for each npm project with an npm test script The shape of the object is @@ -9,26 +9,26 @@ description: displayPath: string // An abbreviated version of the path for display purposes only }' inputs: - node-version: - description: The version of Node.js to use - required: true directories: - description: List of directories to search for npm projects with an npm test script + description: 'List of directories to search for npm projects with an npm test script' required: true exclude-dirs: - description: List of directories to exclude from the search + description: 'List of directories to exclude from the search' required: false default: '' outputs: test-infos: - description: All of the test info objects found by this action + description: 'All of the test info objects found by this action' value: ${{ steps.get-test-infos.outputs.test-infos }} runs: using: composite steps: + - id: get-node-version + uses: ./.github/actions/get_node_version + - uses: actions/setup-node@v4 with: - node-version: ${{ inputs.node-version }} + node-version: ${{ steps.get-node-version.outputs.node-version }} - name: Get test infos id: get-test-infos diff --git a/.github/actions/set_run_conditions/README.md b/.github/actions/set_run_conditions/README.md new file mode 100644 index 0000000000..e33311a3ea --- /dev/null +++ b/.github/actions/set_run_conditions/README.md @@ -0,0 +1,30 @@ +## Prerequisite + +This action assumes that the repository has already been checked out before +calling the action, typically using `actions/checkout@v4`. If you have not +checked out the code in a previous step, make sure to do so to avoid errors. + +This action does **not** perform a checkout action itself because it would be +redundant. This action is part of the repository's codebase, so if the code +hasn't already been checked out, the action itself wouldn't even be available to +call. Additionally, rerunning a checkout at this stage could potentially +overwrite any earlier `actions/checkout` step with different parameters, such as +checking out a specific branch. + +## Example Usage + +```yaml +steps: + - uses: actions/checkout@v4 + + - id: set-run-conditions + uses: ./.github/actions/set_run_conditions + + - name: Use run conditions + run: | + echo "Is main branch push: ${{ steps.set-run-conditions.outputs.is_main_branch_push }}" + echo "Is main branch merge from release: ${{ steps.set-run-conditions.outputs.is_main_branch_merge_from_release_push }}" + echo "Is release branch PR: ${{ steps.set-run-conditions.outputs.is_release_branch_pr }}" + echo "Is feature branch PR: ${{ steps.set-run-conditions.outputs.is_feature_branch_pr }}" + echo "Is feature branch draft PR: ${{ steps.set-run-conditions.outputs.is_feature_branch_draft_pr }}" +``` diff --git a/.github/actions/set_run_conditions/action.yml b/.github/actions/set_run_conditions/action.yml new file mode 100644 index 0000000000..5da7d76365 --- /dev/null +++ b/.github/actions/set_run_conditions/action.yml @@ -0,0 +1,37 @@ +name: 'Set run conditions' +description: 'Sets the run conditions based on the current GitHub context' +outputs: + is_main_branch_push: + description: 'True if this is a push to the main branch (excluding merges from release branches)' + value: ${{ steps.set-conditions.outputs.is_main_branch_push }} + is_main_branch_push_from_release_merge: + description: 'True if this is a push to the main branch from a release branch merge' + value: ${{ steps.set-conditions.outputs.is_main_branch_push_from_release_merge }} + is_release_branch_pr: + description: 'True if this is a pull request from a release branch' + value: ${{ steps.set-conditions.outputs.is_release_branch_pr }} + is_feature_branch_pr: + description: 'True if this is a pull request from a feature branch (non-draft)' + value: ${{ steps.set-conditions.outputs.is_feature_branch_pr }} + is_feature_branch_draft_pr: + description: 'True if this is a draft pull request from a feature branch' + value: ${{ steps.set-conditions.outputs.is_feature_branch_draft_pr }} +runs: + using: 'composite' + steps: + - id: set-conditions + run: | + # Define conditions using shell variables + AZLE_IS_MAIN_BRANCH_PUSH=${{ github.ref == 'refs/heads/main' && !contains(github.event.head_commit.message, 'demergent-labs/release--') }} + AZLE_IS_MAIN_BRANCH_PUSH_FROM_RELEASE_MERGE=${{ github.ref == 'refs/heads/main' && contains(github.event.head_commit.message, 'demergent-labs/release--') }} + AZLE_IS_RELEASE_PR=${{ startsWith(github.head_ref, 'release--') }} + AZLE_IS_FEATURE_PR=${{ !startsWith(github.head_ref, 'release--') && github.ref != 'refs/heads/main' && github.event.pull_request.draft == false }} + AZLE_IS_DRAFT_PR=${{ !startsWith(github.head_ref, 'release--') && github.ref != 'refs/heads/main' && github.event.pull_request.draft == true }} + + # Set individual outputs + echo "is_main_branch_push=$AZLE_IS_MAIN_BRANCH_PUSH" >> $GITHUB_OUTPUT + echo "is_main_branch_push_from_release_merge=$AZLE_IS_MAIN_BRANCH_PUSH_FROM_RELEASE_MERGE" >> $GITHUB_OUTPUT + echo "is_release_branch_pr=$AZLE_IS_RELEASE_BRANCH_PR" >> $GITHUB_OUTPUT + echo "is_feature_branch_pr=$AZLE_IS_FEATURE_BRANCH_PR" >> $GITHUB_OUTPUT + echo "is_feature_branch_draft_pr=$AZLE_IS_FEATURE_BRANCH_DRAFT_PR" >> $GITHUB_OUTPUT + shell: bash diff --git a/.github/workflows/get_and_run_tests.yml b/.github/workflows/get_and_run_tests.yml new file mode 100644 index 0000000000..fe5213baf3 --- /dev/null +++ b/.github/workflows/get_and_run_tests.yml @@ -0,0 +1,46 @@ +name: Prepare and Run Tests + +on: + workflow_call: + inputs: + directories: + required: true + type: string + exclude-dirs: + required: false + type: string + default: '' + +jobs: + prepare-test-environment: + name: 'Prepare Test Environment' + runs-on: ubuntu-latest + outputs: + test-infos: ${{ steps.get-test-infos.outputs.test-infos }} + include_npm: ${{ steps.set-include-npm.outputs.include_npm }} + steps: + - uses: actions/checkout@v4 + - id: get-test-infos + uses: ./.github/actions/get_test_infos + with: + directories: ${{ inputs.directories }} + exclude-dirs: ${{ inputs.exclude-dirs }} + - uses: ./.github/actions/set_run_conditions + id: set-conditions + - id: set-include-npm + run: | + if [[ "${{ steps.set-conditions.outputs.is_main_branch_push }}" == "true" || \ + "${{ steps.set-conditions.outputs.is_main_branch_push_from_release_merge }}" == "true" || \ + "${{ steps.set-conditions.outputs.is_release_branch_pr }}" == "true" ]]; then + echo "include_npm=true" >> $GITHUB_OUTPUT + else + echo "include_npm=false" >> $GITHUB_OUTPUT + fi + + run-tests: + name: 'Run' + needs: prepare-test-environment + uses: ./.github/workflows/run_test.yml + with: + test_infos: ${{ needs.prepare-test-environment.outputs.test-infos }} + include_npm: ${{ needs.prepare-test-environment.outputs.include_npm == 'true' }} diff --git a/.github/workflows/run_test.yml b/.github/workflows/run_test.yml new file mode 100644 index 0000000000..3b9b060337 --- /dev/null +++ b/.github/workflows/run_test.yml @@ -0,0 +1,142 @@ +name: Run Test + +on: + workflow_call: + inputs: + test_infos: + required: true + type: string + include_npm: + required: true + type: boolean + +jobs: + run-test: + name: '${{matrix.tests.name}} | ${{matrix.tests.displayPath}} | ${{matrix.azle_source}}' + runs-on: ${{ matrix.os }} + env: + ETHEREUM_URL: ${{ secrets.ETHEREUM_URL }} + AZLE_IDENTITY_STORAGE_MODE: 'plaintext' + AZLE_END_TO_END_TEST_LINK_AZLE: ${{ matrix.azle_source == 'repo' }} + AZLE_IS_MAIN_BRANCH_PUSH: '' + AZLE_IS_MAIN_BRANCH_PUSH_FROM_RELEASE_MERGE: '' + AZLE_IS_RELEASE_BRANCH_PR: '' + AZLE_IS_FEATURE_BRANCH_PR: '' + AZLE_IS_FEATURE_BRANCH_DRAFT_PR: '' + + strategy: + fail-fast: false # We want to see which example tests succeed and which ones fail, we don't want one example test to cancel the rest + matrix: # spins up one job per combination of test and code source (repo or npm). + # os: [macos-latest, ubuntu-latest] + os: [ubuntu-latest] + azle_source: + - ${{ inputs.include_npm == 'true' && 'npm' || 'repo' }} + tests: ${{ fromJSON(inputs.test_infos) }} + steps: + - uses: actions/checkout@v4 + + - uses: ./.github/actions/set_run_conditions + id: set-conditions + + - name: Set condition environment variables + run: | + echo "AZLE_IS_MAIN_BRANCH_PUSH=${{ steps.set-conditions.outputs.is_main_branch_push }}" >> $GITHUB_ENV + echo "AZLE_IS_MAIN_BRANCH_PUSH_FROM_RELEASE_MERGE=${{ steps.set-conditions.outputs.is_main_branch_push_from_release_merge }}" >> $GITHUB_ENV + echo "AZLE_IS_RELEASE_BRANCH_PR=${{ steps.set-conditions.outputs.is_release_branch_pr }}" >> $GITHUB_ENV + echo "AZLE_IS_FEATURE_BRANCH_PR=${{ steps.set-conditions.outputs.is_feature_branch_pr }}" >> $GITHUB_ENV + echo "AZLE_IS_FEATURE_BRANCH_DRAFT_PR=${{ steps.set-conditions.outputs.is_feature_branch_draft_pr }}" >> $GITHUB_ENV + + - id: check-conditions + run: | + echo "AZLE_IS_MAIN_BRANCH_PUSH: $AZLE_IS_MAIN_BRANCH_PUSH" + echo "AZLE_IS_MAIN_BRANCH_PUSH_FROM_RELEASE_MERGE: $AZLE_IS_MAIN_BRANCH_PUSH_FROM_RELEASE_MERGE" + echo "AZLE_IS_RELEASE_BRANCH_PR: $AZLE_IS_RELEASE_BRANCH_PR" + echo "AZLE_IS_FEATURE_BRANCH_PR: $AZLE_IS_FEATURE_BRANCH_PR" + echo "AZLE_IS_FEATURE_BRANCH_DRAFT_PR: $AZLE_IS_FEATURE_BRANCH_DRAFT_PR" + + - name: Report full path of test + # Just in case the path isn't obvious from the name, this will remove ambiguity + run: echo ${{matrix.tests.path}} + + - id: get-node-version + uses: ./.github/actions/get_node_version + + - uses: actions/setup-node@v4 + with: + node-version: ${{ steps.get-node-version.outputs.node-version }} + + - id: get-dfx-version + uses: ./.github/actions/get_dfx_version + + - name: Run pre-test Azle setup + run: | + + # Install dfx (Note: DFX must be installed before `npm install` because the azle installation process requires dfx) + src/build/stable/commands/install_global_dependencies/install_dfx.sh ${{ steps.get-dfx-version.outputs.dfx-version }} + echo "$HOME/.local/share/dfx/bin" >> $GITHUB_PATH + + # MacOS-specific DNS configuration + if [[ "${{ matrix.os }}" == "macos-latest" ]]; then + sudo networksetup -setdnsservers Ethernet 9.9.9.9 + fi + + npm install + + if [[ "${{ matrix.azle_source }}" == "repo" ]]; then + npm link + fi + + npm run lint + shell: bash -l {0} + + - name: Run pre-test setup for ${{ matrix.tests.name }} + run: | + npm install + + if [[ "${{ matrix.azle_source }}" == "repo" ]]; then + npm link azle + fi + + npx azle install-dfx-extension + working-directory: ${{ matrix.tests.path }} + shell: bash -l {0} + + - name: Start dfx with artificial delay 0 + if: ${{ steps.set-conditions.outputs.is_feature_branch_pr == 'true' || steps.set-conditions.outputs.is_feature_branch_draft_pr == 'true' }} + working-directory: ${{ matrix.tests.path }} + run: dfx start --clean --background --host 127.0.0.1:8000 --artificial-delay 0 + + - name: Start dfx + if: ${{ steps.set-conditions.outputs.is_release_branch_pr == 'true' || steps.set-conditions.outputs.is_main_branch_push == 'true' || steps.set-conditions.outputs.is_main_branch_push_from_release_merge == 'true' }} + working-directory: ${{ matrix.tests.path }} + run: dfx start --clean --background --host 127.0.0.1:8000 + + - name: Run test + run: | + RUNS=1 + + if [[ "${{ steps.set-conditions.outputs.is_main_branch_push }}" == "true" ]]; then + RUNS=100 + fi + + if [[ "${{ steps.set-conditions.outputs.is_main_branch_push_from_release_merge }}" == "true" ]]; then + RUNS=100 + fi + + if [[ "${{ steps.set-conditions.outputs.is_release_branch_pr }}" == "true" ]]; then + RUNS=10 + fi + + if [[ "${{ steps.set-conditions.outputs.is_feature_branch_pr }}" == "true" ]]; then + RUNS=5 + fi + + if [[ "${{ steps.set-conditions.outputs.is_feature_branch_draft_pr }}" == "true" ]]; then + RUNS=1 + fi + + echo "Running tests $RUNS times" + + AZLE_PROPTEST_NUM_RUNS=$RUNS AZLE_PROPTEST_VERBOSE=true npm test + shell: bash -l {0} + working-directory: ${{ matrix.tests.path }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 711f5e6e59..61bb09a8be 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,18 +3,14 @@ # These tests are currently written in TypeScript and are intended to be run in a Node.js environment. # This GitHub Action takes care of deploying to npm and GitHub. -name: Tests +name: Test + on: push: branches: - main pull_request: # Runs on pull requests to any branch -env: - AZLE_IS_MAIN_BRANCH_PUSH: ${{ github.ref == 'refs/heads/main' && !contains(github.event.head_commit.message, 'demergent-labs/release--') }} - AZLE_IS_MAIN_BRANCH_MERGE_FROM_RELEASE_PUSH: ${{ github.ref == 'refs/heads/main' && contains(github.event.head_commit.message, 'demergent-labs/release--') }} - AZLE_IS_RELEASE_BRANCH_PR: ${{ startsWith(github.head_ref, 'release--') }} - AZLE_IS_FEATURE_BRANCH_PR: ${{ !startsWith(github.head_ref, 'release--') && github.ref != 'refs/heads/main' && github.event.pull_request.draft == false }} - AZLE_IS_FEATURE_BRANCH_DRAFT_PR: ${{ !startsWith(github.head_ref, 'release--') && github.ref != 'refs/heads/main' && github.event.pull_request.draft == true }} + jobs: determine-should-run-tests: name: Determine if tests should run @@ -28,25 +24,22 @@ jobs: - id: determine-should-run-tests uses: ./.github/actions/should_release - get-test-infos: - name: Get test infos - needs: determine-should-run-tests - if: ${{ needs.determine-should-run-tests.outputs.should-run-tests == 'true' }} + set-exclude-dirs: + name: Set exclude directories runs-on: ubuntu-latest outputs: - test-infos: ${{ steps.get-test-infos.outputs.test-infos }} + exclude-dirs: ${{ steps.set-exclude-dirs.outputs.exclude-dirs }} steps: - uses: actions/checkout@v4 - - id: get-node-version - uses: ./.github/actions/get_node_version + - id: set-conditions + uses: ./.github/actions/set_run_conditions - - name: Set exclude dirs - id: set-exclude-dirs + - id: set-exclude-dirs run: | RELEASE_TESTS="${{ format(' - tests/end_to_end/candid_rpc/class_syntax/new/ - tests/end_to_end/http_server/new/ + tests/end_to_end/candid_rpc/class_syntax/new + tests/end_to_end/http_server/new ') }}" UNSTABLE_TESTS="${{ format(' @@ -76,25 +69,31 @@ jobs: tests/end_to_end/http_server/autoreload ') }}" + AZLE_IS_MAIN_BRANCH_PUSH="${{ steps.set-conditions.outputs.is_main_branch_push }}" + AZLE_IS_MAIN_BRANCH_PUSH_FROM_RELEASE_MERGE="${{ steps.set-conditions.outputs.is_main_branch_push_from_release_merge }}" + AZLE_IS_RELEASE_BRANCH_PR="${{ steps.set-conditions.outputs.is_release_branch_pr }}" + AZLE_IS_FEATURE_BRANCH_PR="${{ steps.set-conditions.outputs.is_feature_branch_pr }}" + AZLE_IS_FEATURE_BRANCH_DRAFT_PR="${{ steps.set-conditions.outputs.is_feature_branch_draft_pr }}" + EXCLUDE_DIRS="" - if [[ "${{ env.AZLE_IS_MAIN_BRANCH_PUSH }}" == "true" ]]; then + if [[ "$AZLE_IS_MAIN_BRANCH_PUSH" == "true" ]]; then EXCLUDE_DIRS="" fi - if [[ "${{ env.AZLE_IS_MAIN_BRANCH_MERGE_FROM_RELEASE_PUSH }}" == "true" ]]; then + if [[ "$AZLE_IS_MAIN_BRANCH_PUSH_FROM_RELEASE_MERGE" == "true" ]]; then EXCLUDE_DIRS="" fi - if [[ "${{ env.AZLE_IS_RELEASE_BRANCH_PR }}" == "true" ]]; then + if [[ "$AZLE_IS_RELEASE_BRANCH_PR" == "true" ]]; then EXCLUDE_DIRS="" fi - if [[ "${{ env.AZLE_IS_FEATURE_BRANCH_PR }}" == "true" ]]; then + if [[ "$AZLE_IS_FEATURE_BRANCH_PR" == "true" ]]; then EXCLUDE_DIRS="$RELEASE_TESTS $UNSTABLE_TESTS" fi - if [[ "${{ env.AZLE_IS_FEATURE_BRANCH_DRAFT_PR }}" == "true" ]]; then + if [[ "$AZLE_IS_FEATURE_BRANCH_DRAFT_PR" == "true" ]]; then EXCLUDE_DIRS="$RELEASE_TESTS $UNSTABLE_TESTS $SLOW_TESTS" fi @@ -102,137 +101,49 @@ jobs: EXCLUDE_DIRS=$(echo $EXCLUDE_DIRS | xargs) echo "exclude-dirs=$EXCLUDE_DIRS" >> $GITHUB_OUTPUT - - name: Get test infos - id: get-test-infos - uses: ./.github/actions/get_test_infos - with: - node-version: ${{ steps.get-node-version.outputs.node-version }} - directories: | - ./examples - ./tests - exclude-dirs: ${{ steps.set-exclude-dirs.outputs.exclude-dirs }} - - run-test: - name: '${{matrix.tests.name}} | ${{matrix.tests.displayPath}} | ${{matrix.azle_source}}' + run-tests: + name: ${{ matrix.test_group.name }} needs: - determine-should-run-tests - - get-test-infos + - set-exclude-dirs if: ${{ needs.determine-should-run-tests.outputs.should-run-tests == 'true' }} - runs-on: ${{ matrix.os }} - env: - ETHEREUM_URL: ${{ secrets.ETHEREUM_URL }} - AZLE_IDENTITY_STORAGE_MODE: 'plaintext' - AZLE_END_TO_END_TEST_LINK_AZLE: ${{ matrix.azle_source == 'repo' }} strategy: - fail-fast: false # We want to see which example tests succeed and which ones fail, we don't want one example test to cancel the rest - matrix: # spins up one job per combination of test and code source (repo or npm). - # os: [macos-latest] - os: [ubuntu-latest] - include_npm: - # Only include npm in the matrix if you've pushed to main and the last commit was a merge of a release branch, or the base branch of the pull request is a release branch - - ${{ (github.ref == 'refs/heads/main' && contains(github.event.head_commit.message, 'Merge pull request') && contains(github.event.head_commit.message, 'demergent-labs/release--')) || contains(github.head_ref, 'release--') }} - azle_source: - - npm - - repo - exclude: - - include_npm: false - azle_source: npm - - include_npm: true - azle_source: repo - # If should_run_tests is false, we still want the steps of this job to execute so that check-run-test-success will run. We do this by creating an array with one dummy element - tests: ${{ fromJSON(needs.get-test-infos.outputs.test-infos) }} - steps: - - name: Report full path of test - # Just in case the path isn't obvious from the name, this will remove ambiguity - run: echo ${{matrix.tests.path}} - - - uses: actions/checkout@v4 - - - id: get-node-version - uses: ./.github/actions/get_node_version - - - uses: actions/setup-node@v4 - with: - node-version: ${{ steps.get-node-version.outputs.node-version }} - - - id: get-dfx-version - uses: ./.github/actions/get_dfx_version - - - name: Run pre-test Azle setup - run: | - - # Install dfx (Note: DFX must be installed before `npm install` because the azle installation process requires dfx) - src/build/stable/commands/install_global_dependencies/install_dfx.sh ${{ steps.get-dfx-version.outputs.dfx-version }} - echo "$HOME/.local/share/dfx/bin" >> $GITHUB_PATH - - # MacOS-specific DNS configuration - if [[ "${{ matrix.os }}" == "macos-latest" ]]; then - sudo networksetup -setdnsservers Ethernet 9.9.9.9 - fi - - npm install - - if [[ "${{ matrix.azle_source }}" == "repo" ]]; then - npm link - fi - - npm run lint - shell: bash -l {0} - - - name: Run pre-test setup for ${{ matrix.tests.name }} - run: | - npm install - - if [[ "${{ matrix.azle_source }}" == "repo" ]]; then - npm link azle - fi - - npx azle install-dfx-extension - working-directory: ${{ matrix.tests.path }} - shell: bash -l {0} - - - name: Start dfx with artificial delay 0 - if: ${{ env.AZLE_IS_FEATURE_BRANCH_PR == 'true' || env.AZLE_IS_FEATURE_BRANCH_DRAFT_PR == 'true' }} - working-directory: ${{ matrix.tests.path }} - run: dfx start --clean --background --host 127.0.0.1:8000 --artificial-delay 0 - - - name: Start dfx - if: ${{ env.AZLE_IS_RELEASE_BRANCH_PR == 'true' || env.AZLE_IS_MAIN_BRANCH_PUSH == 'true' || env.AZLE_IS_MAIN_BRANCH_MERGE_FROM_RELEASE_PUSH == 'true' }} - working-directory: ${{ matrix.tests.path }} - run: dfx start --clean --background --host 127.0.0.1:8000 - - - name: Run test - run: | - RUNS=1 - - if [[ "${{ env.AZLE_IS_MAIN_BRANCH_PUSH }}" == "true" ]]; then - RUNS=100 - fi - - if [[ "${{ env.AZLE_IS_MAIN_BRANCH_MERGE_FROM_RELEASE_PUSH }}" == "true" ]]; then - RUNS=100 - fi - - if [[ "${{ env.AZLE_IS_RELEASE_BRANCH_PR }}" == "true" ]]; then - RUNS=10 - fi - - if [[ "${{ env.AZLE_IS_FEATURE_BRANCH_PR }}" == "true" ]]; then - RUNS=5 - fi - - if [[ "${{ env.AZLE_IS_FEATURE_BRANCH_DRAFT_PR }}" == "true" ]]; then - RUNS=1 - fi - - AZLE_PROPTEST_NUM_RUNS=$RUNS AZLE_PROPTEST_VERBOSE=true npm test - shell: bash -l {0} - working-directory: ${{ matrix.tests.path }} + fail-fast: false + matrix: + test_group: + - { name: 'Examples', directories: './examples' } + - { + name: 'E2E Class', + directories: './tests/end_to_end/candid_rpc/class_syntax' + } + - { + name: 'E2E Functional', + directories: './tests/end_to_end/candid_rpc/functional_syntax' + } + - { + name: 'E2E HTTP Server', + directories: './tests/end_to_end/http_server' + } + - { + name: 'Property Class', + directories: './tests/property/candid_rpc/class_api' + } + - { + name: 'Property Functional', + directories: './tests/property/candid_rpc/functional_api' + } + - { + name: 'Property IC API', + directories: './tests/property/ic_api' + } + uses: ./.github/workflows/get_and_run_tests.yml + with: + directories: ${{ matrix.test_group.directories }} + exclude-dirs: ${{ needs.set-exclude-dirs.outputs.exclude-dirs }} - # These final jobs are designed to ensure that all jobs spun up from the matrix in the run-test have succeeded check-test-success: name: Check Azle tests succeeded - needs: run-test + needs: run-tests runs-on: ubuntu-latest if: success() steps: @@ -240,7 +151,7 @@ jobs: check-test-failure: name: Check Azle tests didn't fail - needs: run-test + needs: run-tests runs-on: ubuntu-latest if: failure() steps: