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