File tree Expand file tree Collapse file tree 2 files changed +93
-0
lines changed
Expand file tree Collapse file tree 2 files changed +93
-0
lines changed Original file line number Diff line number Diff line change 1+ name : Build and Push Builder Image
2+
3+ on :
4+ push :
5+ branches :
6+ - main
7+
8+ jobs :
9+ build-and-push :
10+ name : Build and Push Builder Image
11+ runs-on : ubuntu-latest
12+
13+ strategy :
14+ matrix :
15+ go-version : [1.22.9, 1.23.2]
16+ ubuntu-version : [16.04]
17+
18+ steps :
19+ - name : Checkout repository
20+ uses : actions/checkout@v4
21+
22+ - name : Set up Docker Buildx
23+ uses : docker/setup-buildx-action@v2
24+
25+ - name : Log in to GitHub Container Registry
26+ uses : docker/login-action@v2
27+ with :
28+ registry : ghcr.io
29+ username : ${{ github.actor }}
30+ password : ${{ secrets.GITHUB_TOKEN }}
31+
32+ - name : Build and push Docker image
33+ uses : docker/build-push-action@v4
34+ with :
35+ context : .
36+ file : build/Dockerfile
37+ build-args : |
38+ GO_VERSION=${{ matrix.go-version }}
39+ UBUNTU_VERSION=${{ matrix.ubuntu-version }}
40+ push : true
41+ tags : |
42+ ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}:latest-go${{ matrix.go-version }}-ubuntu${{ matrix.ubuntu-version }}
Original file line number Diff line number Diff line change 1+ ARG UBUNTU_VERSION=16.04
2+
3+ # Use Ubuntu as the base image
4+ FROM ubuntu:${UBUNTU_VERSION}
5+
6+ ARG GO_VERSION=1.23.2
7+ ARG ARCH='amd64'
8+ ARG GH_VERSION='2.61.0'
9+
10+ # Install dependencies
11+ RUN apt-get update && apt-get install -y \
12+ gnupg-agent \
13+ unzip \
14+ zip \
15+ curl \
16+ wget \
17+ expect \
18+ git \
19+ tar \
20+ gcc \
21+ jq \
22+ g++ \
23+ gnupg2 \
24+ gnupg-agent \
25+ debsigs \
26+ rpm \
27+ build-essential \
28+ software-properties-common \
29+ python-software-properties \
30+ gcc-arm-linux-gnueabi \
31+ dpkg-sig \
32+ gcc-aarch64-linux-gnu
33+
34+ # Install Go
35+ RUN curl -sSL https://golang.org/dl/go${GO_VERSION}.linux-${ARCH}.tar.gz -o go${GO_VERSION}.linux-${ARCH}.tar.gz && \
36+ tar -C /usr/local -xzf go${GO_VERSION}.linux-${ARCH}.tar.gz && \
37+ rm go${GO_VERSION}.linux-${ARCH}.tar.gz
38+
39+ # Set Go environment variables
40+ ENV PATH="/usr/local/go/bin:/go/bin:${PATH}"
41+ ENV GOPATH="/go"
42+
43+ # Default value of -buildvcs is auto, more info:
44+ # https://github.com/kubernetes-sigs/gateway-api/pull/2302#issuecomment-1855818388
45+ ENV GOFLAGS="-buildvcs=false"
46+
47+ # Since the user does not match the owners of the repo "git rev-parse --is-inside-work-tree" fails and goreleaser does not populate projectName
48+ # https://stackoverflow.com/questions/72978485/git-submodule-update-failed-with-fatal-detected-dubious-ownership-in-repositor
49+ RUN git config --global --add safe.directory '*'
50+ RUN curl -L https://github.com/cli/cli/releases/download/v${GH_VERSION}/gh_${GH_VERSION}_linux_amd64.deb -o gh_${GH_VERSION}_linux_amd64.deb
51+ RUN dpkg -i gh_${GH_VERSION}_linux_amd64.deb
You can’t perform that action at this time.
0 commit comments