Merge pull request #2337 from demergent-labs/dependabot/npm_and_yarn/… #6275
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This GitHub Action flow works as follows: | |
# Each directory in the examples and tests directory represents an example project and is intended to have tests that ensure the canisters contained in that example function properly. | |
# 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: Test | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
types: | |
- opened | |
- synchronize | |
- ready_for_review | |
- reopened | |
workflow_dispatch: | |
inputs: | |
fuzz: | |
description: 'Run fuzz tests' | |
required: true | |
type: boolean | |
default: false | |
exclude-slow-tests: | |
description: 'Exclude slow tests' | |
required: true | |
type: boolean | |
default: true | |
exclude-unstable-tests: | |
description: 'Exclude unstable tests' | |
required: true | |
type: boolean | |
default: true | |
exclude-release-only-tests: | |
description: 'Exclude release-only tests' | |
required: true | |
type: boolean | |
default: true | |
link-azle: | |
description: 'Link to development version of azle' | |
required: true | |
type: boolean | |
default: true | |
jobs: | |
workflow-config: | |
name: Determine workflow config | |
runs-on: ubuntu-latest | |
outputs: | |
exclude-slow: ${{ steps.determine-workflow-config.outputs.exclude-slow }} | |
exclude-unstable: ${{ steps.determine-workflow-config.outputs.exclude-unstable }} | |
exclude-release-only: ${{ steps.determine-workflow-config.outputs.exclude-release-only }} | |
link-azle: ${{ steps.determine-workflow-config.outputs.link-azle }} | |
fuzz: ${{ steps.determine-workflow-config.outputs.fuzz }} | |
steps: | |
- uses: actions/checkout@v4 | |
- id: determine-workflow-config | |
uses: ./.github/actions/determine_workflow_config | |
with: | |
is-workflow-dispatch: ${{ github.event_name == 'workflow_dispatch' }} | |
exclude-slow-dispatch-input-value: ${{ inputs.exclude-slow-tests }} | |
exclude-unstable-dispatch-input-value: ${{ inputs.exclude-unstable-tests }} | |
exclude-release-only-dispatch-input-value: ${{ inputs.exclude-release-only-tests }} | |
link-azle-dispatch-input-value: ${{ inputs.link-azle }} | |
fuzz-dispatch-input-value: ${{ inputs.fuzz }} | |
get-exclude-dirs: | |
name: Get exclude directories | |
needs: workflow-config | |
runs-on: ubuntu-latest | |
outputs: | |
exclude-dirs: ${{ steps.get-exclude-dirs.outputs.exclude-dirs }} | |
steps: | |
- uses: actions/checkout@v4 | |
- id: get-exclude-dirs | |
uses: ./.github/actions/get_exclude_dirs | |
with: | |
exclude-slow: ${{ needs.workflow-config.outputs.exclude-slow }} | |
exclude-unstable: ${{ needs.workflow-config.outputs.exclude-unstable }} | |
exclude-release-only: ${{ needs.workflow-config.outputs.exclude-release-only }} | |
run-tests: | |
name: ${{ matrix.test_group.name }} | |
needs: | |
- workflow-config | |
- get-exclude-dirs | |
strategy: | |
fail-fast: false | |
matrix: | |
test_group: | |
- { | |
name: 'Stable Demo', | |
directories: './examples/stable/demo' | |
} | |
- { | |
name: 'Stable Demo (Experimental)', | |
directories: './examples/stable/demo', | |
run-experimental: true | |
} | |
- { | |
name: 'Experimental Demo', | |
directories: './examples/experimental/demo' | |
} | |
- { | |
name: 'Stable E2E CRPC', | |
directories: './examples/stable/test/end_to_end/candid_rpc' | |
} | |
- { | |
name: 'Stable E2E CRPC (Experimental)', | |
directories: './examples/stable/test/end_to_end/candid_rpc', | |
run-experimental: true | |
} | |
- { | |
name: 'Experimental E2E CRPC', | |
directories: './examples/experimental/test/end_to_end/candid_rpc' | |
} | |
- { | |
name: 'Experimental E2E HTTP Server', | |
directories: './examples/experimental/test/end_to_end/http_server' | |
} | |
- { | |
name: 'Stable Property CRPC', | |
directories: './examples/stable/test/property/candid_rpc' | |
} | |
- { | |
name: 'Stable Property CRPC (Experimental)', | |
directories: './examples/stable/test/property/candid_rpc', | |
run-experimental: true | |
} | |
- { | |
name: 'Experimental Property CRPC', | |
directories: './examples/experimental/test/property/candid_rpc' | |
} | |
- { | |
name: 'Stable Property IC API', | |
directories: './examples/stable/test/property/ic_api' | |
} | |
- { | |
name: 'Stable Property IC API (Experimental)', | |
directories: './examples/stable/test/property/ic_api', | |
run-experimental: true | |
} | |
uses: ./.github/workflows/run_test.yml | |
with: | |
directories: ${{ matrix.test_group.directories }} | |
exclude-dirs: ${{ needs.get-exclude-dirs.outputs.exclude-dirs }} | |
link-azle: ${{ needs.workflow-config.outputs.link-azle == 'true' }} | |
run-experimental: ${{ matrix.test_group.run-experimental || false }} | |
fuzz: ${{ needs.workflow-config.outputs.fuzz == 'true' }} | |
check-test-success: | |
name: Check Azle tests succeeded | |
needs: run-tests | |
runs-on: ubuntu-latest | |
if: success() | |
steps: | |
- run: exit 0 | |
check-test-failure: | |
name: Check Azle tests didn't fail | |
needs: run-tests | |
runs-on: ubuntu-latest | |
if: failure() | |
steps: | |
- run: exit 1 |