Add cheating bootstrap CI container, with gocheckout pre-installed
This commit is contained in:
parent
4c266ce336
commit
be351bbb7d
@ -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:
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user