name: CI on: [push] jobs: # This step builds the `gas/ci` docker image. # There's a tricky bootstrapping problem here. Let's use Alpine and install `gocheckout` first # thing. build-docker: container: image: alpine:3.22 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: | env GOBIN=/usr/local/go/bin go install git.offline-twitter.com/offline-labs/gocheckout@v0.0.1 gocheckout - name: install docker run: apk add docker - name: build CI container run: docker build -t gas/ci ops/devcontainer release-test: container: image: gas/ci volumes: - woodpecker-gocache:/go-cache-volume env: GOPATH: /go-cache-volume GOCACHE: /go-cache-volume/build-cache GOLANGCI_LINT_CACHE: /go-cache-volume/golangci-lint steps: - name: checkout env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | env GOBIN=/usr/local/go/bin go install git.offline-twitter.com/offline-labs/gocheckout@v0.0.1 gocheckout - name: test run: go test ./... - name: lint run: golangci-lint run - name: Run sqlite_lint integration test run: ops/sqlite_lint_test.sh