mirror of
https://github.com/denoland/deno.git
synced 2025-01-18 11:53:59 -05:00
First pass at github actions (#2966)
This commit is contained in:
parent
4d3df6f73b
commit
4a807f4225
4 changed files with 146 additions and 8 deletions
79
.github/workflows/build.yml
vendored
Normal file
79
.github/workflows/build.yml
vendored
Normal file
|
@ -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
.github/workflows/lint.yml
vendored
Normal file
51
.github/workflows/lint.yml
vendored
Normal file
|
@ -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
|
|
@ -2,7 +2,7 @@ import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from test_util import DenoTestCase, run_tests
|
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):
|
class TestTarget(DenoTestCase):
|
||||||
|
@ -23,8 +23,7 @@ class TestTarget(DenoTestCase):
|
||||||
|
|
||||||
def test_cargo_test(self):
|
def test_cargo_test(self):
|
||||||
cargo_test = ["cargo", "test", "--all", "--locked"]
|
cargo_test = ["cargo", "test", "--all", "--locked"]
|
||||||
if "DENO_BUILD_MODE" in os.environ and \
|
if build_mode() == "release":
|
||||||
os.environ["DENO_BUILD_MODE"] == "release":
|
|
||||||
run(cargo_test + ["--release"])
|
run(cargo_test + ["--release"])
|
||||||
else:
|
else:
|
||||||
run(cargo_test)
|
run(cargo_test)
|
||||||
|
@ -48,11 +47,16 @@ class TestTarget(DenoTestCase):
|
||||||
"tests/exec_path.ts"
|
"tests/exec_path.ts"
|
||||||
]
|
]
|
||||||
result = run_output(cmd, quiet=True)
|
result = run_output(cmd, quiet=True)
|
||||||
print "exec_path", result.code
|
print "exec_path", result
|
||||||
print result.out
|
|
||||||
print result.err
|
|
||||||
assert self.deno_exe in result.out.strip()
|
|
||||||
self.assertEqual(result.code, 0)
|
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__":
|
if __name__ == "__main__":
|
||||||
|
|
|
@ -43,8 +43,12 @@ def main():
|
||||||
TestRepl,
|
TestRepl,
|
||||||
TestDenoDir,
|
TestDenoDir,
|
||||||
TestBenchmark,
|
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 += permission_prompt_tests()
|
||||||
test_cases += complex_permissions_tests()
|
test_cases += complex_permissions_tests()
|
||||||
# It is very slow, so do TestFmt at the end.
|
# It is very slow, so do TestFmt at the end.
|
||||||
|
|
Loading…
Add table
Reference in a new issue