From 14713adca5fe7dd4d7fceab2f802d9e91d8ac940 Mon Sep 17 00:00:00 2001 From: Ry Dahl Date: Tue, 29 Oct 2019 17:07:15 -0400 Subject: Rename Github Actions workflow (#3238) --- .github/workflows/build.yml | 193 -------------------------------------------- .github/workflows/ci.yml | 193 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 193 insertions(+), 193 deletions(-) delete mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/ci.yml (limited to '.github/workflows') diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 3bed415b7..000000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,193 +0,0 @@ -name: build - -on: [push, pull_request] - -jobs: - build: - name: ${{ matrix.kind }} ${{ matrix.os }} - runs-on: ${{ matrix.os }} - timeout-minutes: 60 - strategy: - matrix: - os: [macOS-10.14, windows-2019, ubuntu-16.04] - kind: ['test', 'test_debug', 'test_std', 'bench', 'lint'] - exclude: - - os: windows-2019 - kind: 'bench' - - os: macOS-10.14 - kind: 'bench' - - - os: windows-2019 - kind: 'lint' - - os: macOS-10.14 - kind: 'lint' - - - os: windows-2019 - kind: 'test_debug' - - os: macOS-10.14 - kind: 'test_debug' - 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: Create source tarballs (release, linux) - if: startsWith(matrix.os, 'ubuntu') && matrix.kind == 'test' && startsWith(github.ref, 'refs/tags/') && github.repository == 'denoland/deno' - run: | - mkdir -p target/release - tar --exclude=".git*" --exclude=target --exclude=deno_typescript/typescript/tests --exclude=third_party/cpplint --exclude="third_party/node_modules/*" --exclude=third_party/python_packages --exclude=third_party/wrk -czvf target/release/deno_src.tar.gz -C .. deno - - - name: Install rust - uses: hecrj/setup-rust-action@v1 - with: - rust-version: "1.38.0" - - - name: Install clippy and rustfmt - if: matrix.kind == 'lint' - run: | - rustup component add clippy - rustup component add rustfmt - - - 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') - # In order to test the installer scripts in std we need a deno - # executable in the path. See - # https://github.com/denoland/deno/blob/27cd2c97f18c0392bc04c66b786717b2bc677315/std/installer/mod.ts#L185-L193 - # TODO(ry) This path modification should rather be done in "cargo test". - run: | - echo ::add-path::`pwd`/third_party/prebuilt/linux64 - echo ::add-path::`pwd`/target/release - - - name: Environment (mac) - if: startsWith(matrix.os, 'macOS') - run: | - echo ::add-path::`pwd`/third_party/prebuilt/mac - echo ::add-path::`pwd`/target/release - - - name: Environment (windows) - if: startsWith(matrix.os, 'windows') - run: | - echo ::add-path::$(pwd)\third_party\prebuilt\win - echo ::add-path::$(pwd)\target\release - - - 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: lint.py - if: matrix.kind == 'lint' - run: python ./tools/lint.py - - - name: test_format.py - if: matrix.kind == 'lint' - run: python ./tools/test_format.py - - - name: Clippy - if: matrix.kind == 'lint' - run: cargo clippy --all-targets --release --locked -- -D clippy::all - - - name: Build - if: matrix.kind == 'test' || matrix.kind == 'bench' || matrix.kind == 'test_std' - run: cargo build --release --locked --all-targets - - # TODO(ry) Remove this step, and move the following test to - # cli/tests/std_tests.rs - # TODO(ry) Remove the "cd std". - - name: std test - if: matrix.kind == 'test_std' - run: | - cd std - ../target/release/deno test -A - - - name: Test - if: matrix.kind == 'test' - run: cargo test --release --locked --all-targets - - - name: Test debug - if: matrix.kind == 'test_debug' - run: | - echo ::set-env name=DENO_BUILD_MODE::debug - cargo test --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' && github.repository == 'denoland/deno' - env: - DENOBOT_PAT: ${{ secrets.DENOBOT_PAT }} - run: | - git clone --depth 1 -b gh-pages https://${DENOBOT_PAT}@github.com/denoland/deno.git gh-pages - python ./tools/build_benchmark_jsons.py - cd gh-pages - git config user.email "propelml@gmail.com" - git config user.name "denobot" - git add . - git commit --message "Update benchmarks" - git push origin 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') && matrix.kind == 'test' - run: gzip -c target/release/deno > target/release/deno_linux_x64.gz - - - name: Pre-release (mac) - if: startsWith(matrix.os, 'macOS') && matrix.kind == 'test' - run: gzip -c target/release/deno > target/release/deno_osx_x64.gz - - - name: Pre-release (windows) - if: startsWith(matrix.os, 'windows') && matrix.kind == 'test' - run: 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/') && github.repository == 'denoland/deno' - 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 - target/release/deno_src.tar.gz - draft: true - - - name: Stop sccache - run: sccache --stop-server diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..03984d5ca --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,193 @@ +name: ci + +on: [push, pull_request] + +jobs: + build: + name: ${{ matrix.kind }} ${{ matrix.os }} + runs-on: ${{ matrix.os }} + timeout-minutes: 60 + strategy: + matrix: + os: [macOS-10.14, windows-2019, ubuntu-16.04] + kind: ['test', 'test_debug', 'test_std', 'bench', 'lint'] + exclude: + - os: windows-2019 + kind: 'bench' + - os: macOS-10.14 + kind: 'bench' + + - os: windows-2019 + kind: 'lint' + - os: macOS-10.14 + kind: 'lint' + + - os: windows-2019 + kind: 'test_debug' + - os: macOS-10.14 + kind: 'test_debug' + 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: Create source tarballs (release, linux) + if: startsWith(matrix.os, 'ubuntu') && matrix.kind == 'test' && startsWith(github.ref, 'refs/tags/') && github.repository == 'denoland/deno' + run: | + mkdir -p target/release + tar --exclude=".git*" --exclude=target --exclude=deno_typescript/typescript/tests --exclude=third_party/cpplint --exclude="third_party/node_modules/*" --exclude=third_party/python_packages --exclude=third_party/wrk -czvf target/release/deno_src.tar.gz -C .. deno + + - name: Install rust + uses: hecrj/setup-rust-action@v1 + with: + rust-version: "1.38.0" + + - name: Install clippy and rustfmt + if: matrix.kind == 'lint' + run: | + rustup component add clippy + rustup component add rustfmt + + - 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') + # In order to test the installer scripts in std we need a deno + # executable in the path. See + # https://github.com/denoland/deno/blob/27cd2c97f18c0392bc04c66b786717b2bc677315/std/installer/mod.ts#L185-L193 + # TODO(ry) This path modification should rather be done in "cargo test". + run: | + echo ::add-path::`pwd`/third_party/prebuilt/linux64 + echo ::add-path::`pwd`/target/release + + - name: Environment (mac) + if: startsWith(matrix.os, 'macOS') + run: | + echo ::add-path::`pwd`/third_party/prebuilt/mac + echo ::add-path::`pwd`/target/release + + - name: Environment (windows) + if: startsWith(matrix.os, 'windows') + run: | + echo ::add-path::$(pwd)\third_party\prebuilt\win + echo ::add-path::$(pwd)\target\release + + - 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: lint.py + if: matrix.kind == 'lint' + run: python ./tools/lint.py + + - name: test_format.py + if: matrix.kind == 'lint' + run: python ./tools/test_format.py + + - name: Clippy + if: matrix.kind == 'lint' + run: cargo clippy --all-targets --release --locked -- -D clippy::all + + - name: Build + if: matrix.kind == 'test' || matrix.kind == 'bench' || matrix.kind == 'test_std' + run: cargo build --release --locked --all-targets + + # TODO(ry) Remove this step, and move the following test to + # cli/tests/std_tests.rs + # TODO(ry) Remove the "cd std". + - name: std test + if: matrix.kind == 'test_std' + run: | + cd std + ../target/release/deno test -A + + - name: Test + if: matrix.kind == 'test' + run: cargo test --release --locked --all-targets + + - name: Test debug + if: matrix.kind == 'test_debug' + run: | + echo ::set-env name=DENO_BUILD_MODE::debug + cargo test --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' && github.repository == 'denoland/deno' + env: + DENOBOT_PAT: ${{ secrets.DENOBOT_PAT }} + run: | + git clone --depth 1 -b gh-pages https://${DENOBOT_PAT}@github.com/denoland/deno.git gh-pages + python ./tools/build_benchmark_jsons.py + cd gh-pages + git config user.email "propelml@gmail.com" + git config user.name "denobot" + git add . + git commit --message "Update benchmarks" + git push origin 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') && matrix.kind == 'test' + run: gzip -c target/release/deno > target/release/deno_linux_x64.gz + + - name: Pre-release (mac) + if: startsWith(matrix.os, 'macOS') && matrix.kind == 'test' + run: gzip -c target/release/deno > target/release/deno_osx_x64.gz + + - name: Pre-release (windows) + if: startsWith(matrix.os, 'windows') && matrix.kind == 'test' + run: 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/') && github.repository == 'denoland/deno' + 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 + target/release/deno_src.tar.gz + draft: true + + - name: Stop sccache + run: sccache --stop-server -- cgit v1.2.3