diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d405017f34..4c3d892058 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,7 +9,7 @@ jobs: github.event_name == 'push' || !startsWith(github.event.pull_request.head.label, 'denoland:') runs-on: ${{ matrix.os }} - timeout-minutes: 60 + timeout-minutes: 90 strategy: matrix: include: @@ -47,7 +47,6 @@ jobs: CARGO_INCREMENTAL: 0 RUST_BACKTRACE: full CARGO_TERM_COLOR: always - RUSTC_WRAPPER: sccache steps: - name: Configure git @@ -62,6 +61,18 @@ jobs: fetch-depth: 5 submodules: true + # Install gnu-tar because BSD tar is buggy on Github's macos machines. + # https://github.com/actions/cache/issues/403 + # https://github.com/actions-rs/cargo/issues/111. + - name: Install GNU tar + if: matrix.build == 'macos' + run: | + brew install gnu-tar + echo "::add-path::/usr/local/opt/gnu-tar/libexec/gnubin" + + - name: Write git_submodule_status.txt + run: git submodule status --recursive > git_submodule_status.txt + - name: Create source tarballs (release, linux) if: | startsWith(matrix.os, 'ubuntu') && @@ -72,39 +83,24 @@ jobs: mkdir -p target/release tar --exclude=.cargo_home --exclude=".git*" --exclude=target --exclude=third_party/prebuilt -czvf target/release/deno_src.tar.gz -C .. deno - # Note the following caches target which includes sccache. - - uses: Swatinem/rust-cache@v1 + - name: Cargo Cache + uses: actions/cache@v2 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + .cargo_home + target/*/.* + target/*/build + target/*/deps + key: cargo-cache-${{ runner.os }}-${{ hashFiles('Cargo.lock') }} + restore-keys: cargo-cache-${{ runner.os }}- - name: Install rust uses: hecrj/setup-rust-action@v1 with: rust-version: 1.50.0 - - name: Install and start sccache - shell: pwsh - env: - SCCACHE_DIR: ${{ github.workspace }}/target/sccache - SCCACHE_CACHE_SIZE: 128M - SCCACHE_IDLE_TIMEOUT: 0 - run: | - $version = "v0.2.15" - $platform = - @{ "macOS" = "x86_64-apple-darwin" - "Linux" = "x86_64-unknown-linux-musl" - "Windows" = "x86_64-pc-windows-msvc" - }.${{ runner.os }} - $basename = "sccache-$version-$platform" - chmod u+x $basename/sccache - $url = "https://github.com/mozilla/sccache/releases/download/" + - "$version/$basename.tar.gz" - cd ~ - curl -LO $url - tar -xzvf "$basename.tar.gz" - chmod u+x $basename/sccache - . $basename/sccache --start-server - echo "$(pwd)/$basename" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - - - name: Install clippy and rustfmt if: matrix.kind == 'lint' run: | @@ -359,7 +355,3 @@ jobs: target/release/deno_src.tar.gz target/release/lib.deno.d.ts draft: true - - - name: Stop sccache - if: always() - run: sccache --stop-server