1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
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.38.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: 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
- name: Stop sccache
run: sccache --stop-server
|