Fix and add caching to gotip CI actions

Fix and add caching to gotip CI actions
This commit is contained in:
Matt Joiner 2022-02-10 15:04:53 +11:00
parent 205266cb60
commit 3a57995bfc
1 changed files with 36 additions and 0 deletions

View File

@ -4,6 +4,7 @@ runs:
using: "composite"
steps:
- name: Set up Go
if: matrix.go-version != 'tip'
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.go-version }}
@ -22,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