119625d8cSopenharmony_ciname: CI 219625d8cSopenharmony_cion: 319625d8cSopenharmony_ci pull_request: 419625d8cSopenharmony_ci push: 519625d8cSopenharmony_ci branches: ["*master"] 619625d8cSopenharmony_ci schedule: 719625d8cSopenharmony_ci - cron: '3 3 3 * *' 819625d8cSopenharmony_cipermissions: 919625d8cSopenharmony_ci contents: read 1019625d8cSopenharmony_ci 1119625d8cSopenharmony_cijobs: 1219625d8cSopenharmony_ci ci: 1319625d8cSopenharmony_ci permissions: 1419625d8cSopenharmony_ci contents: none 1519625d8cSopenharmony_ci name: CI 1619625d8cSopenharmony_ci needs: [test, check, docs, rustfmt, clippy, cffconvert] 1719625d8cSopenharmony_ci runs-on: ubuntu-latest 1819625d8cSopenharmony_ci steps: 1919625d8cSopenharmony_ci - name: Done 2019625d8cSopenharmony_ci run: exit 0 2119625d8cSopenharmony_ci test: 2219625d8cSopenharmony_ci name: Test 2319625d8cSopenharmony_ci strategy: 2419625d8cSopenharmony_ci matrix: 2519625d8cSopenharmony_ci build: [linux, windows, mac, minimal, default, next] 2619625d8cSopenharmony_ci include: 2719625d8cSopenharmony_ci - build: linux 2819625d8cSopenharmony_ci os: ubuntu-latest 2919625d8cSopenharmony_ci rust: "stable" 3019625d8cSopenharmony_ci features: "full" 3119625d8cSopenharmony_ci - build: windows 3219625d8cSopenharmony_ci os: windows-latest 3319625d8cSopenharmony_ci rust: "stable" 3419625d8cSopenharmony_ci features: "full" 3519625d8cSopenharmony_ci - build: mac 3619625d8cSopenharmony_ci os: macos-latest 3719625d8cSopenharmony_ci rust: "stable" 3819625d8cSopenharmony_ci features: "full" 3919625d8cSopenharmony_ci - build: minimal 4019625d8cSopenharmony_ci os: ubuntu-latest 4119625d8cSopenharmony_ci rust: "stable" 4219625d8cSopenharmony_ci features: "minimal" 4319625d8cSopenharmony_ci - build: default 4419625d8cSopenharmony_ci os: ubuntu-latest 4519625d8cSopenharmony_ci rust: "stable" 4619625d8cSopenharmony_ci features: "default" 4719625d8cSopenharmony_ci - build: next 4819625d8cSopenharmony_ci os: ubuntu-latest 4919625d8cSopenharmony_ci rust: "stable" 5019625d8cSopenharmony_ci features: "next" 5119625d8cSopenharmony_ci continue-on-error: ${{ matrix.rust != 'stable' }} 5219625d8cSopenharmony_ci runs-on: ${{ matrix.os }} 5319625d8cSopenharmony_ci steps: 5419625d8cSopenharmony_ci - name: Checkout repository 5519625d8cSopenharmony_ci uses: actions/checkout@v3 5619625d8cSopenharmony_ci - name: Install Rust 5719625d8cSopenharmony_ci uses: actions-rs/toolchain@v1 5819625d8cSopenharmony_ci with: 5919625d8cSopenharmony_ci toolchain: ${{ matrix.rust }} 6019625d8cSopenharmony_ci profile: minimal 6119625d8cSopenharmony_ci override: true 6219625d8cSopenharmony_ci - uses: Swatinem/rust-cache@v2 6319625d8cSopenharmony_ci - name: Build 6419625d8cSopenharmony_ci run: make build-${{matrix.features}} 6519625d8cSopenharmony_ci - name: Test 6619625d8cSopenharmony_ci run: make test-${{matrix.features}} 6719625d8cSopenharmony_ci - name: Test (benches) 6819625d8cSopenharmony_ci run: make test-${{matrix.features}} ARGS='--workspace --benches' 6919625d8cSopenharmony_ci - name: Test (ultra-minimal) 7019625d8cSopenharmony_ci if: matrix.build == 'minimal' 7119625d8cSopenharmony_ci run: make test-minimal ARGS='--manifest-path Cargo.toml' 7219625d8cSopenharmony_ci check: 7319625d8cSopenharmony_ci name: Check 7419625d8cSopenharmony_ci runs-on: ubuntu-latest 7519625d8cSopenharmony_ci strategy: 7619625d8cSopenharmony_ci fail-fast: false 7719625d8cSopenharmony_ci matrix: 7819625d8cSopenharmony_ci build: [msrv, wasm, wasm-wasi, debug, release] 7919625d8cSopenharmony_ci include: 8019625d8cSopenharmony_ci - build: msrv 8119625d8cSopenharmony_ci rust: 1.64.0 # MSRV 8219625d8cSopenharmony_ci target: x86_64-unknown-linux-gnu 8319625d8cSopenharmony_ci features: full 8419625d8cSopenharmony_ci - build: wasm 8519625d8cSopenharmony_ci rust: stable 8619625d8cSopenharmony_ci target: wasm32-unknown-unknown 8719625d8cSopenharmony_ci features: wasm 8819625d8cSopenharmony_ci - build: wasm-wasi 8919625d8cSopenharmony_ci rust: stable 9019625d8cSopenharmony_ci target: wasm32-wasi 9119625d8cSopenharmony_ci features: wasm 9219625d8cSopenharmony_ci - build: debug 9319625d8cSopenharmony_ci rust: stable 9419625d8cSopenharmony_ci target: x86_64-unknown-linux-gnu 9519625d8cSopenharmony_ci features: debug 9619625d8cSopenharmony_ci - build: release 9719625d8cSopenharmony_ci rust: stable 9819625d8cSopenharmony_ci target: x86_64-unknown-linux-gnu 9919625d8cSopenharmony_ci features: release 10019625d8cSopenharmony_ci steps: 10119625d8cSopenharmony_ci - name: Checkout repository 10219625d8cSopenharmony_ci uses: actions/checkout@v3 10319625d8cSopenharmony_ci - name: Install rust 10419625d8cSopenharmony_ci uses: actions-rs/toolchain@v1 10519625d8cSopenharmony_ci with: 10619625d8cSopenharmony_ci toolchain: ${{ matrix.rust }} 10719625d8cSopenharmony_ci target: ${{ matrix.target }} 10819625d8cSopenharmony_ci override: true 10919625d8cSopenharmony_ci - uses: Swatinem/rust-cache@v2 11019625d8cSopenharmony_ci - name: Check 11119625d8cSopenharmony_ci run: make check-${{ matrix.features }} 11219625d8cSopenharmony_ci env: 11319625d8cSopenharmony_ci TOOLCHAIN_TARGET: ${{ matrix.target }} 11419625d8cSopenharmony_ci ui: 11519625d8cSopenharmony_ci name: UI Tests 11619625d8cSopenharmony_ci runs-on: ubuntu-latest 11719625d8cSopenharmony_ci strategy: 11819625d8cSopenharmony_ci fail-fast: false 11919625d8cSopenharmony_ci matrix: 12019625d8cSopenharmony_ci features: [default, next] 12119625d8cSopenharmony_ci steps: 12219625d8cSopenharmony_ci - name: Checkout repository 12319625d8cSopenharmony_ci uses: actions/checkout@v3 12419625d8cSopenharmony_ci - name: Install Rust 12519625d8cSopenharmony_ci uses: actions-rs/toolchain@v1 12619625d8cSopenharmony_ci with: 12719625d8cSopenharmony_ci toolchain: 1.64.0 # MSRV 12819625d8cSopenharmony_ci profile: minimal 12919625d8cSopenharmony_ci override: true 13019625d8cSopenharmony_ci - uses: Swatinem/rust-cache@v2 13119625d8cSopenharmony_ci - name: UI Tests 13219625d8cSopenharmony_ci run: make test-ui-${{ matrix.features }} 13319625d8cSopenharmony_ci docs: 13419625d8cSopenharmony_ci name: Docs 13519625d8cSopenharmony_ci runs-on: ubuntu-latest 13619625d8cSopenharmony_ci steps: 13719625d8cSopenharmony_ci - name: Checkout repository 13819625d8cSopenharmony_ci uses: actions/checkout@v3 13919625d8cSopenharmony_ci - name: Install Rust 14019625d8cSopenharmony_ci uses: actions-rs/toolchain@v1 14119625d8cSopenharmony_ci with: 14219625d8cSopenharmony_ci toolchain: 1.64.0 # MSRV 14319625d8cSopenharmony_ci profile: minimal 14419625d8cSopenharmony_ci override: true 14519625d8cSopenharmony_ci - uses: Swatinem/rust-cache@v2 14619625d8cSopenharmony_ci - name: Check documentation 14719625d8cSopenharmony_ci env: 14819625d8cSopenharmony_ci RUSTDOCFLAGS: -D warnings 14919625d8cSopenharmony_ci run: make doc 15019625d8cSopenharmony_ci rustfmt: 15119625d8cSopenharmony_ci name: rustfmt 15219625d8cSopenharmony_ci runs-on: ubuntu-latest 15319625d8cSopenharmony_ci steps: 15419625d8cSopenharmony_ci - name: Checkout repository 15519625d8cSopenharmony_ci uses: actions/checkout@v3 15619625d8cSopenharmony_ci - name: Install Rust 15719625d8cSopenharmony_ci uses: actions-rs/toolchain@v1 15819625d8cSopenharmony_ci with: 15919625d8cSopenharmony_ci # Not MSRV because its harder to jump between versions and people are 16019625d8cSopenharmony_ci # more likely to have stable 16119625d8cSopenharmony_ci toolchain: stable 16219625d8cSopenharmony_ci profile: minimal 16319625d8cSopenharmony_ci override: true 16419625d8cSopenharmony_ci components: rustfmt 16519625d8cSopenharmony_ci - uses: Swatinem/rust-cache@v2 16619625d8cSopenharmony_ci - name: Check formatting 16719625d8cSopenharmony_ci run: cargo fmt --all -- --check 16819625d8cSopenharmony_ci clippy: 16919625d8cSopenharmony_ci name: clippy 17019625d8cSopenharmony_ci runs-on: ubuntu-latest 17119625d8cSopenharmony_ci steps: 17219625d8cSopenharmony_ci - name: Checkout repository 17319625d8cSopenharmony_ci uses: actions/checkout@v3 17419625d8cSopenharmony_ci - name: Install Rust 17519625d8cSopenharmony_ci uses: actions-rs/toolchain@v1 17619625d8cSopenharmony_ci with: 17719625d8cSopenharmony_ci toolchain: 1.64.0 # MSRV 17819625d8cSopenharmony_ci profile: minimal 17919625d8cSopenharmony_ci override: true 18019625d8cSopenharmony_ci components: clippy 18119625d8cSopenharmony_ci - uses: Swatinem/rust-cache@v2 18219625d8cSopenharmony_ci - name: Lint (ultra-minimal) 18319625d8cSopenharmony_ci run: make clippy-minimal ARGS='--manifest-path Cargo.toml' 18419625d8cSopenharmony_ci - name: Lint (minimal) 18519625d8cSopenharmony_ci run: make clippy-minimal 18619625d8cSopenharmony_ci - name: Lint (all) 18719625d8cSopenharmony_ci run: make clippy-full 18819625d8cSopenharmony_ci - name: Lint (release) 18919625d8cSopenharmony_ci run: make clippy-release 19019625d8cSopenharmony_ci cffconvert: 19119625d8cSopenharmony_ci name: cffconvert 19219625d8cSopenharmony_ci runs-on: ubuntu-latest 19319625d8cSopenharmony_ci steps: 19419625d8cSopenharmony_ci - name: Checkout repository 19519625d8cSopenharmony_ci uses: actions/checkout@v3 19619625d8cSopenharmony_ci with: 19719625d8cSopenharmony_ci persist-credentials: false 19819625d8cSopenharmony_ci - name: CFF validation 19919625d8cSopenharmony_ci uses: citation-file-format/cffconvert-github-action@2.0.0 20019625d8cSopenharmony_ci with: 20119625d8cSopenharmony_ci args: --validate 202