name: build on: [push, pull_request] jobs: build: name: ${{ matrix.kind }} ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: matrix: os: [macOS-10.14, windows-2016, ubuntu-16.04] kind: ['test', 'bench'] exclude: - os: windows-2016 kind: 'bench' - os: macOS-10.14 kind: 'bench' steps: - name: Configure git run: git config --global core.symlinks true - name: Clone repository uses: actions/checkout@v1 with: fetch-depth: 1 submodules: true - name: Install rust uses: hecrj/setup-rust-action@v1 with: rust-version: "1.37.0" - name: Install python uses: actions/setup-python@v1 with: python-version: "2.7.16" architecture: x64 - name: Environment (common) run: | echo ::set-env name=GH_ACTIONS::1 echo ::set-env name=RUSTC_WRAPPER::sccache echo ::set-env name=DENO_BUILD_MODE::release - name: Environment (linux) if: startsWith(matrix.os, 'ubuntu') run: | echo ::add-path::`pwd`/prebuilt/linux64 - name: Environment (mac) if: startsWith(matrix.os, 'macOS') run: | echo ::add-path::`pwd`/prebuilt/mac - name: Environment (windows) if: startsWith(matrix.os, 'windows') run: | echo ::add-path::%cd%\prebuilt\win - name: Log versions run: | node -v python --version rustc --version cargo --version - name: Run setup.py run: python ./tools/setup.py - name: Start sccache env: AWS_ACCESS_KEY_ID: AKIAIVRN52PLDBP55LBQ AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} SCCACHE_BUCKET: deno-sccache SCCACHE_IDLE_TIMEOUT: 0 run: sccache --start-server - name: Build run: cargo build --release --locked --all-targets - name: Test if: matrix.kind == 'test' run: cargo test --release --locked --all-targets - name: Run Benchmarks if: matrix.kind == 'bench' run: python ./tools/benchmark.py target/release - name: Post Benchmarks if: matrix.kind == 'bench' && github.ref == 'refs/heads/master' env: DENOBOT_PAT: ${{ secrets.DENOBOT_PAT }} run: | # Note gh-pages branch is cloned into //gh-pages/ by # tools/benchmark.py, hence the following copy is ok: cp -r website/* gh-pages/ cd gh-pages git remote add origin2 https://${DENOBOT_PAT}@github.com/denoland/deno.git git config user.email "propelml@gmail.com" git config user.name "denobot" git add . git commit --message "Update benchmarks" git push origin2 gh-pages - name: Worker info if: matrix.kind == 'bench' run: | cat /proc/cpuinfo cat /proc/meminfo - name: Stop sccache run: sccache --stop-server