code #507
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
name: code | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
schedule: | |
- cron: "0 20 * * 0" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref || github.run_id }} | |
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }} | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
test: | |
name: ${{ matrix.rust-toolchain.name }} / ${{ matrix.platform.name }} / ${{ matrix.mode.name }} | |
runs-on: ${{ matrix.platform.os }} | |
strategy: | |
matrix: | |
rust-toolchain: | |
- name: stable | |
allow-fail: false | |
platform: | |
- name: Linux | |
os: ubuntu-latest | |
cacheKey: ubuntu-latest | |
buildEnvScript: .github/scripts/build_env/linux.sh | |
env: {} | |
experimental: false | |
- name: Windows | |
os: windows-latest | |
cacheKey: windows-latest | |
buildEnvScript: .github/scripts/build_env/windows.sh | |
env: | |
CARGO_INCREMENTAL: "0" | |
experimental: false | |
mode: | |
- name: clippy | |
cargoCommand: clippy | |
cargoArgs: --workspace -- -D warnings | |
- name: test | |
cargoCommand: test | |
cargoArgs: --workspace | |
- name: build | |
cargoCommand: build | |
cargoArgs: --workspace | |
fail-fast: false | |
continue-on-error: ${{ matrix.platform.experimental || matrix.rust-toolchain.allow-fail }} | |
env: ${{ matrix.platform.env }} | |
steps: | |
- name: Job config | |
run: echo "$MATRIX_CONTEXT" | |
env: | |
MATRIX_CONTEXT: ${{ toJson(matrix) }} | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- uses: ./.github/actions/common-setup | |
with: | |
platformCacheKey: ${{ matrix.platform.cacheKey }} | |
buildEnvScript: ${{ matrix.platform.buildEnvScript }} | |
timeout-minutes: 25 | |
- name: Run cargo ${{ matrix.mode.cargoCommand }} | |
uses: actions-rs/cargo@v1 | |
with: | |
command: ${{ matrix.mode.cargoCommand }} | |
args: ${{ matrix.mode.cargoArgs }} | |
package: | |
name: stable / ${{ matrix.platform.name }} / package | |
runs-on: ${{ matrix.platform.os }} | |
strategy: | |
matrix: | |
platform: | |
- name: Windows | |
os: windows-latest | |
packagingEnvScript: .github/scripts/packaging_env/windows.sh | |
packagingScript: .github/scripts/packaging/windows.sh | |
env: | |
CARGO_INCREMENTAL: "0" | |
experimental: false | |
- name: Linux | |
os: ubuntu-latest | |
packagingEnvScript: .github/scripts/packaging_env/linux.sh | |
packagingScript: .github/scripts/packaging/linux.sh | |
env: {} | |
experimental: false | |
fail-fast: false | |
env: ${{ matrix.platform.env }} | |
steps: | |
- name: Job config | |
run: echo "$MATRIX_CONTEXT" | |
env: | |
MATRIX_CONTEXT: ${{ toJson(matrix) }} | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- uses: ./.github/actions/common-setup | |
with: | |
platformCacheKey: ${{ matrix.platform.cacheKey }} | |
buildEnvScript: ${{ matrix.platform.packagingEnvScript }} | |
timeout-minutes: 25 | |
- name: Run cargo build (release) | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --release --workspace | |
- name: Do the packaging | |
run: ${{ matrix.platform.packagingScript }} "${{ github.workspace }}/target/artifacts" | |
- name: Upload packaged artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ matrix.platform.name }} Build | |
path: ${{ github.workspace }}/target/artifacts |