Fix and add caching to gotip CI actions

This commit is contained in:
Matt Joiner 2022-02-10 14:57:03 +11:00
parent 06d87cb235
commit 5966935cfb
2 changed files with 36 additions and 10 deletions

View File

@ -8,16 +8,6 @@ runs:
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.go-version }}
- name: Install gotip
if: matrix.go-version == 'tip'
run: |
git clone --depth=1 https://go.googlesource.com/go "$HOME/gotip"
cd "$HOME/gotip/src"
./make.bash
echo "GOROOT=$HOME/gotip" >> "$GITHUB_ENV"
echo "$(go env GOPATH)/bin:$PATH" >> "$GITHUB_PATH"
echo "$HOME/gotip/bin:$PATH" >> "$GITHUB_PATH"
env
- uses: actions/cache@v2
with:
path: |
@ -33,4 +23,39 @@ runs:
${{ runner.os }}-go-${{ matrix.go-version }}-${{ github.job }}-
${{ runner.os }}-go-${{ matrix.go-version }}-
${{ runner.os }}-go-
- run: |
echo GOTIP_REVISION="`git ls-remote https://github.com/golang/go refs/heads/master | cut -f1`" >> "$GITHUB_ENV"
echo GOTIP_PATH="$HOME/gotip" >> "$GITHUB_ENV"
if: matrix.go-version == 'tip'
shell: bash
- uses: actions/cache@v2
if: matrix.go-version == 'tip'
with:
path: |
${{ env.GOTIP_PATH }}
# The build varies by OS (and arch, but I haven't bothered to add that yet.) We always want
# the latest snapshot that works for us, the revision is only used to store differentiate
# builds.
key: gotip-ls-remote-${{ runner.os }}-${{ env.GOTIP_REVISION }}
restore-keys: |
gotip-ls-remote-${{ runner.os }}-${{ env.GOTIP_REVISION }}
gotip-ls-remote-${{ runner.os }}-
gotip-env-home-${{ runner.os }}-
gotip-${{ runner.os }}-
- name: Install gotip
if: matrix.go-version == 'tip'
run: |
git clone --depth=1 https://go.googlesource.com/go "$GOTIP_PATH" || true
cd "$GOTIP_PATH"
git pull
echo "GOROOT=$GOTIP_PATH" >> "$GITHUB_ENV"
echo "$(go env GOPATH)/bin:$PATH" >> "$GITHUB_PATH"
echo "$GOTIP_PATH/bin:$PATH" >> "$GITHUB_PATH"
echo "anacrolix.built:" $(cat anacrolix.built)
[[ -x bin/go && `git rev-parse HEAD` == `cat anacrolix.built` ]] && exit
cd src
./make.bash || exit
git rev-parse HEAD > ../anacrolix.built
env
shell: bash

View File

@ -5,6 +5,7 @@ on: [push, pull_request]
jobs:
test:
timeout-minutes: 10
runs-on: ubuntu-latest
strategy:
matrix: