check #102
This file contains hidden or 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
| name: check | |
| on: | |
| push: | |
| branches: | |
| - master | |
| - main | |
| pull_request: | |
| workflow_dispatch: | |
| schedule: | |
| - cron: '17 3 * * *' | |
| jobs: | |
| check: | |
| name: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - ubuntu-24.04 | |
| - macos-15 | |
| - windows-2025 | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| LANG: C | |
| LC_ALL: C | |
| TZ: UTC | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Setup MoonBit | |
| uses: hustcer/setup-moonbit@v1.23 | |
| with: | |
| version: 0.10.13+cbb11c36f | |
| core-version: 0.10.13+cbb11c36f | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Record toolchain | |
| run: moon version --all | |
| - name: Update registry | |
| run: moon update | |
| - name: Check | |
| run: moon check --target all --deny-warn | |
| - name: Test | |
| run: moon test --target all | |
| - name: Build Native release commands and test drivers | |
| run: moon build --target native --release --deny-warn | |
| - name: Build Wasm release commands | |
| run: moon build --target wasm --release --deny-warn | |
| - name: Validate workspace cases | |
| run: >- | |
| ./_build/native/release/build/mooxCLI/cmd-tests/runner/runner.exe | |
| --manifest tests/fixtures/runner/cases.json --validate-only | |
| - name: Validate unpublished candidate manifest | |
| run: >- | |
| ./_build/native/release/build/mooxCLI/cmd-tests/release_runner/release_runner.exe | |
| --manifest tests/release_runner/candidate-0.2.0.json --suite validate | |
| - name: Native compatibility | |
| run: >- | |
| ./_build/native/release/build/mooxCLI/cmd-tests/runner/runner.exe | |
| --suite compat --report-dir test-reports/compat-native | |
| - name: Native command contracts | |
| run: >- | |
| ./_build/native/release/build/mooxCLI/cmd-tests/runner/runner.exe | |
| --suite contract --backend native --report-dir test-reports/contract-native | |
| - name: Wasm command contracts | |
| run: >- | |
| ./_build/native/release/build/mooxCLI/cmd-tests/runner/runner.exe | |
| --suite contract --backend wasm --report-dir test-reports/contract-wasm | |
| - name: Native interactive, network and lifecycle scenarios | |
| timeout-minutes: 3 | |
| run: >- | |
| ./_build/native/release/build/mooxCLI/cmd-tests/runner/runner.exe | |
| --suite scenarios --backend native --report-dir test-reports/scenarios-native | |
| - name: Wasm interactive, network and lifecycle scenarios | |
| timeout-minutes: 3 | |
| run: >- | |
| ./_build/native/release/build/mooxCLI/cmd-tests/runner/runner.exe | |
| --suite scenarios --backend wasm --report-dir test-reports/scenarios-wasm | |
| - name: GNU differential | |
| if: runner.os == 'Linux' | |
| run: >- | |
| ./_build/native/release/build/mooxCLI/cmd-tests/runner/runner.exe | |
| --suite gnu --report-dir test-reports/gnu-native | |
| - name: Wasm policy | |
| run: >- | |
| ./_build/native/release/build/mooxCLI/cmd-tests/runner/runner.exe | |
| --suite policy --report-dir test-reports/policy-wasm | |
| - name: Setup Docker Buildx | |
| if: runner.os == 'Linux' | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Build pinned oracle image | |
| if: runner.os == 'Linux' | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: tests/runner/image | |
| load: true | |
| tags: mooncmd-oracle:phase0 | |
| cache-from: type=gha,scope=mooncmd-oracle | |
| cache-to: type=gha,mode=max,scope=mooncmd-oracle | |
| - name: Record oracle versions and image digest | |
| if: runner.os == 'Linux' | |
| run: | | |
| docker run --rm mooncmd-oracle:phase0 /usr/local/bin/versions.sh > test-reports/oracle-versions.txt | |
| docker image inspect --format='{{.Id}}' mooncmd-oracle:phase0 > test-reports/oracle-image.txt | |
| - name: Compare pinned upstream fixtures on Native and Wasm | |
| if: runner.os == 'Linux' | |
| run: | | |
| umask 022 | |
| ./_build/native/release/build/mooxCLI/cmd-tests/runner/runner.exe --suite oracle --oracle-image mooncmd-oracle:phase0 --report-dir test-reports/oracle-native | |
| ./_build/native/release/build/mooxCLI/cmd-tests/runner/runner.exe --suite oracle --backend wasm --oracle-image mooncmd-oracle:phase0 --report-dir test-reports/oracle-wasm | |
| - name: Published-version smoke | |
| if: github.event_name == 'workflow_dispatch' || github.event_name == 'schedule' | |
| run: >- | |
| ./_build/native/release/build/mooxCLI/cmd-tests/release_runner/release_runner.exe | |
| --manifest tests/release_runner/published-0.2.0.json --suite smoke | |
| --report-dir test-reports/published-smoke | |
| - name: Published-version differential | |
| if: runner.os == 'Linux' && (github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') | |
| run: >- | |
| ./_build/native/release/build/mooxCLI/cmd-tests/release_runner/release_runner.exe | |
| --manifest tests/release_runner/published-0.2.0.json --suite differential | |
| --oracle-image mooncmd-oracle:phase0 | |
| --report-dir test-reports/published-differential | |
| - name: Stress scenarios | |
| if: runner.os == 'Linux' && (github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') | |
| run: >- | |
| ./_build/native/release/build/mooxCLI/cmd-tests/runner/runner.exe | |
| --suite stress --report-dir test-reports/stress-native | |
| - name: Generated interfaces | |
| run: moon info | |
| - name: Format | |
| run: moon fmt | |
| - name: Verify generated files | |
| run: git diff --exit-code | |
| - name: Upload reports and failed fixtures | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: cmd-test-reports-${{ matrix.os }} | |
| path: test-reports | |
| if-no-files-found: ignore |