name: "test" on: pull_request: paths-ignore: - "**.md" - ".github/**" - "!.github/workflows/run-tests.yml" push: branches: - "master" paths-ignore: - "**.md" - ".github/**" concurrency: group: "${{ github.workflow }}-${{ github.ref }}" cancel-in-progress: true env: RUST_BACKTRACE: 1 CARGO_TERM_COLOR: always jobs: tests: name: "marine / cargo and marine-js" runs-on: builder timeout-minutes: 60 steps: - uses: actions/checkout@v3 - name: Setup Rust toolchain uses: dsherret/rust-toolchain-file@v1 - name: Setup cache uses: Swatinem/rust-cache@v2 with: cache-directories: ~/.cache/sccache shared-key: marine # github allows only 10GB of cache # so save cache only on merge to master # to use less space and speed up CI save-if: ${{ github.event_name == 'push' }} - name: Setup sccache uses: mozilla-actions/sccache-action@v0.0.3 - name: Setup node uses: actions/setup-node@v3 with: node-version: 16 - name: Install wasm-pack uses: jetli/wasm-pack-action@v0.4.0 - name: Install marine cli run: cargo install --path tools/cli - name: Build marine-js wasm run: ./build.sh working-directory: marine-js - name: Install marine-js npm dependencies uses: bahmutov/npm-install@v1 with: working-directory: marine-js/npm-package - name: Build marine-js npm package run: npm run build working-directory: marine-js/npm-package - name: Build examples run: ./build.sh working-directory: examples - name: Build marine-runtime wasm-tests run: ./build.sh working-directory: marine/tests/wasm_tests - name: Build marine-core wasm-tests run: ./build.sh working-directory: core/tests/wasm_tests - name: Run cargo check run: | cargo check -v --all-features \ -p marine-core \ -p marine \ -p fluence-app-service \ -p marine \ -p mrepl - name: Run cargo test run: | cargo test --release -v --all-features \ -p marine-core \ -p marine \ -p fluence-app-service \ -p marine \ -p mrepl \ - name: Run cargo clippy run: cargo clippy -v - name: Run marine-js smoke tests run: npm run test working-directory: marine-js/npm-package - name: Run cargo fmt run: cargo fmt --all -- --check