diff --git a/.github/workflows/docker-pr.yml b/.github/workflows/docker-pr.yml new file mode 100644 index 0000000..8461366 --- /dev/null +++ b/.github/workflows/docker-pr.yml @@ -0,0 +1,44 @@ +name: Docker image builds (pull requests) + +on: + pull_request: + branches: [ "main" ] + +env: + DOCKER_METADATA_SET_OUTPUT_ENV: "true" + +permissions: + contents: read + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-tags: true + fetch-depth: 0 + + - uses: actions/setup-go@v5 + with: + go-version: '1.24.x' + + - uses: ko-build/setup-ko@v0.8 + + - name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + images: ghcr.io/techarohq/anubis + + - name: Build and push + id: build + run: | + go run ./cmd/containerbuild --docker-repo ghcr.io/techarohq/anubis --slog-level debug + env: + PULL_REQUEST_ID: ${{ github.event.number }} + + - run: | + echo "Test this with:" + echo "docker pull ${{ steps.build.outputs.docker_image }}" \ No newline at end of file diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 65e18ac..bfb095c 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -5,8 +5,6 @@ on: push: branches: [ "main" ] tags: [ "v*" ] - pull_request: - branches: [ "main" ] env: DOCKER_METADATA_SET_OUTPUT_ENV: "true" @@ -28,12 +26,6 @@ jobs: fetch-tags: true fetch-depth: 0 - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - uses: actions/setup-go@v5 with: go-version: '1.24.x' @@ -57,20 +49,6 @@ jobs: id: build run: | go run ./cmd/containerbuild --docker-repo ghcr.io/techarohq/anubis --slog-level debug - env: - PULL_REQUEST_ID: ${{ github.event.number }} - - # - name: "Comment about where to test this" - # uses: thollander/actions-comment-pull-request@v3 - # if: ${{github.event_name == 'pull_request'}} - # with: - # message: | - # You can try this PR out by using the following docker image: - - # ``` - # ${{ steps.build.outputs.docker_image }} - # ``` - # comment-tag: ${{ steps.build.outputs.docker_image }} - name: Generate artifact attestation uses: actions/attest-build-provenance@v2 diff --git a/cmd/containerbuild/main.go b/cmd/containerbuild/main.go index 022cb7b..95194c6 100644 --- a/cmd/containerbuild/main.go +++ b/cmd/containerbuild/main.go @@ -23,21 +23,8 @@ var ( githubEventName = flag.String("github-event-name", "", "GitHub event name") pullRequestID = flag.Int("pull-request-id", -1, "GitHub pull request ID") slogLevel = flag.String("slog-level", "INFO", "logging level (see https://pkg.go.dev/log/slog#hdr-Levels)") - - knownContributors = []string{ - "Xe", - } ) -func inList(needle string, haystack []string) bool { - for _, h := range haystack { - if h == needle { - return true - } - } - return false -} - func main() { flagenv.Parse() flag.Parse() @@ -46,11 +33,7 @@ func main() { koDockerRepo := strings.TrimRight(*dockerRepo, "/"+filepath.Base(*dockerRepo)) - if *githubEventName == "pull_request" && !inList(*githubActor, knownContributors) { - if *pullRequestID == -1 { - log.Fatal("Must set --pull-request-id when --github-event-name=pull_request") - } - + if *githubEventName == "pull_request" && *pullRequestID != -1 { *dockerRepo = fmt.Sprintf("ttl.sh/techaro/pr-%d/anubis", *pullRequestID) *dockerTags = fmt.Sprintf("ttl.sh/techaro/pr-%d/anubis:24h", *pullRequestID) koDockerRepo = fmt.Sprintf("ttl.sh/techaro/pr-%d", *pullRequestID)