0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-10-29 08:58:01 -04:00
denoland-deno/.github/workflows/build.yml

137 lines
4 KiB
YAML
Raw Normal View History

name: build
2019-09-18 17:23:27 -04:00
on: [push, pull_request]
2019-09-18 17:23:27 -04:00
jobs:
build:
name: ${{ matrix.kind }} ${{ matrix.os }}
2019-09-18 17:23:27 -04:00
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'
2019-09-18 17:23:27 -04:00
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:
2019-10-03 09:16:06 -04:00
rust-version: "1.38.0"
2019-09-18 17:23:27 -04:00
- 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
2019-09-18 17:23:27 -04:00
- name: Test
if: matrix.kind == 'test'
run: cargo test --release --locked --all-targets
2019-09-18 17:23:27 -04:00
- 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: Pre-release (linux)
if: startsWith(matrix.os, 'ubuntu')
run: gzip -c target/release/deno > target/release/deno_linux_x64.gz
- name: Pre-release (mac)
if: startsWith(matrix.os, 'macOS')
run: gzip -c target/release/deno > target/release/deno_osx_x64.gz
- name: Pre-release (windows)
if: startsWith(matrix.os, 'windows')
run: PowerShell -Command "& {Compress-Archive -CompressionLevel Optimal -Force -Path target/release/deno.exe -DestinationPath target/release/deno_win_x64.zip}"
- name: Release
uses: softprops/action-gh-release@v1
if: matrix.kind == 'test' && startsWith(github.ref, 'refs/tags/')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: |
target/release/deno_win_x64.zip
target/release/deno_linux_x64.gz
target/release/deno_osx_x64.gz
draft: true
2019-09-18 17:23:27 -04:00
- name: Stop sccache
run: sccache --stop-server