Add cheating bootstrap CI container, with gocheckout pre-installed
Some checks failed
CI / build-docker (push) Failing after 8s
CI / release-test (push) Failing after 19s
CI / build-docker-bootstrap (push) Failing after 1s

This commit is contained in:
wispem-wantex 2025-11-08 23:05:38 -08:00
parent 4c266ce336
commit be351bbb7d
2 changed files with 26 additions and 3 deletions

View File

@ -3,10 +3,32 @@ name: CI
on: [push] on: [push]
jobs: jobs:
# This step builds the `gas/ci` docker image. # These steps build the `gas/ci` docker image.
# There's a tricky bootstrapping problem here. Let's use Alpine and install `gocheckout` first # There's a tricky bootstrapping problem here. We'll try to cheat first, and if that doesn't
# thing. # work, then we'll do a full bootstrapping build starting from Alpine and installing `gocheckout`
# first thing.
build-docker: build-docker:
container:
image: gas/ci
volumes:
- woodpecker-gocache:/go-cache-volume
env:
GOPATH: /go-cache-volume
GOCACHE: /go-cache-volume/build-cache
steps:
- name: checkout
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gocheckout
- name: build CI container
run: docker build -t gas/ci ops/devcontainer
# Fallback: full bootstrap build. This one is quite slow.
build-docker-bootstrap:
needs: build-docker
if: ${{ needs.build-docker.result == "failure" }}
container: container:
image: alpine:3.22 image: alpine:3.22
volumes: volumes:

View File

@ -3,6 +3,7 @@
FROM alpine:3.22 FROM alpine:3.22
RUN apk add build-base git go sqlite shellcheck curl jq RUN apk add build-base git go sqlite shellcheck curl jq
RUN apk add docker
RUN curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b /usr/local/bin v2.0.2 RUN curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b /usr/local/bin v2.0.2
RUN GOBIN=/usr/local/bin go install git.offline-twitter.com/offline-labs/gocheckout@v0.0.2 RUN GOBIN=/usr/local/bin go install git.offline-twitter.com/offline-labs/gocheckout@v0.0.2