Skip to content

Commit

Permalink
First pass at github actions (denoland#2966)
Browse files Browse the repository at this point in the history
  • Loading branch information
ry committed Sep 18, 2019
1 parent 4d3df6f commit 4a807f4
Show file tree
Hide file tree
Showing 4 changed files with 146 additions and 8 deletions.
79 changes: 79 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: Build and test

on: [push]

jobs:
build:
name: Build and test for ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-2016, macOS-latest]
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 -vv --release --locked --all-targets

- name: Test
run: python ./tools/test.py

- name: Stop sccache
run: sccache --stop-server
51 changes: 51 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: lint

on: [push]

jobs:
clippy:
name: lint
runs-on: ubuntu-latest
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 clippy and rustfmt
run: |
rustup component add clippy
rustup component add rustfmt
- name: Environment (common)
run: |
echo ::set-env name=RUSTC_WRAPPER::sccache
echo ::set-env name=DENO_BUILD_MODE::release
echo ::add-path::`pwd`/prebuilt/linux64
- 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: lint.py
run: python ./tools/lint.py

- name: test_format.py
run: python ./tools/test_format.py

- name: Clippy
run: cargo clippy --all-targets --release --locked -- -D clippy::all

- name: Stop sccache
run: sccache --stop-server
18 changes: 11 additions & 7 deletions tools/target_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import sys

from test_util import DenoTestCase, run_tests
from util import executable_suffix, tests_path, run, run_output
from util import build_mode, executable_suffix, tests_path, run, run_output


class TestTarget(DenoTestCase):
Expand All @@ -23,8 +23,7 @@ def _test(self, executable):

def test_cargo_test(self):
cargo_test = ["cargo", "test", "--all", "--locked"]
if "DENO_BUILD_MODE" in os.environ and \
os.environ["DENO_BUILD_MODE"] == "release":
if build_mode() == "release":
run(cargo_test + ["--release"])
else:
run(cargo_test)
Expand All @@ -48,11 +47,16 @@ def test_exec_path(self):
"tests/exec_path.ts"
]
result = run_output(cmd, quiet=True)
print "exec_path", result.code
print result.out
print result.err
assert self.deno_exe in result.out.strip()
print "exec_path", result
self.assertEqual(result.code, 0)
if os.name == "nt":
# When running in github actions, the windows drive letter of the
# executable path reported by deno has a different case than the one
# reported by python.
assert self.deno_exe.upper() in result.out.strip().upper()
assert self.deno_exe[1:] in result.out.strip()
else:
assert self.deno_exe in result.out.strip()


if __name__ == "__main__":
Expand Down
6 changes: 5 additions & 1 deletion tools/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,12 @@ def main():
TestRepl,
TestDenoDir,
TestBenchmark,
TestIsTty,
]

# TODO(ry) This test isn't working yet on github actions.
if "GH_ACTIONS" not in os.environ:
test_cases += [TestIsTty]

test_cases += permission_prompt_tests()
test_cases += complex_permissions_tests()
# It is very slow, so do TestFmt at the end.
Expand Down

0 comments on commit 4a807f4

Please sign in to comment.