name: ci on: [push, pull_request] jobs: build: name: ${{ matrix.kind }} ${{ matrix.os }} runs-on: ${{ matrix.os }} timeout-minutes: 60 strategy: matrix: os: [macOS-latest, ubuntu-16.04, windows-2019] steps: - name: Configure git run: git config --global core.symlinks true - name: Clone repository uses: actions/checkout@v1 with: fetch-depth: 10 submodules: 'recursive' - name: Install rust uses: hecrj/setup-rust-action@v1 with: rust-version: "1.40.0" - name: Install python uses: actions/setup-python@v1 with: python-version: "2.7.x" architecture: x64 - name: Environment (common) run: echo ::set-env name=RUSTC_WRAPPER::sccache - name: Environment (linux) if: startsWith(matrix.os, 'ubuntu') run: | cd .. curl -LO https://github.com/mozilla/sccache/releases/download/0.2.12/sccache-0.2.12-x86_64-unknown-linux-musl.tar.gz tar -xzvf sccache-0.2.12-x86_64-unknown-linux-musl.tar.gz echo ::add-path::`pwd`/sccache-0.2.12-x86_64-unknown-linux-musl/ - name: Environment (mac) if: startsWith(matrix.os, 'macOS') run: | cd .. curl -LO https://github.com/mozilla/sccache/releases/download/0.2.12/sccache-0.2.12-x86_64-apple-darwin.tar.gz tar -xzvf sccache-0.2.12-x86_64-apple-darwin.tar.gz echo ::add-path::`pwd`/sccache-0.2.12-x86_64-apple-darwin/ - name: Environment (windows) if: startsWith(matrix.os, 'windows') run: | cd .. curl -LO https://github.com/mozilla/sccache/releases/download/0.2.12/sccache-0.2.12-x86_64-pc-windows-msvc.tar.gz tar -zxvf sccache-0.2.12-x86_64-pc-windows-msvc.tar.gz echo ::add-path::$(pwd)\sccache-0.2.12-x86_64-pc-windows-msvc\ - name: Start sccache env: AWS_ACCESS_KEY_ID: AKIA6QEJVNZDGHRMR2KF AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} SCCACHE_BUCKET: deno-sccache SCCACHE_IDLE_TIMEOUT: 0 run: sccache --start-server - name: Build run: | git --version cargo build -vv --release --locked --all-targets - name: Test run: cargo test -vv --release --locked --all-targets - name: Clippy run: | rustup component add clippy cargo clippy --all-targets --release --locked -- -D clippy::all - name: Rustfmt run: | rustup component add rustfmt cargo fmt -- --check - name: Publish if: startsWith(github.ref, 'refs/tags/') && github.repository == 'denoland/rusty_v8' && startsWith(matrix.os, 'ubuntu') env: CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} run: cargo publish -vv - name: Stop sccache run: sccache --stop-server # TODO cpplint