From 70b98b603b61152a98332a8a149a6812fd7000b4 Mon Sep 17 00:00:00 2001 From: Sidd Shah Date: Fri, 3 Apr 2020 23:45:49 -0400 Subject: [PATCH 1/5] Add build args args: operating system (OS) and architecture (ARCH) --- Dockerfile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b89b538..fbc79d7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,8 @@ FROM golang:alpine as builder +ARG OS +ARG ARCH + WORKDIR /go/src/github.com/eko/pihole-exporter COPY . . @@ -7,7 +10,7 @@ RUN apk update && \ apk --no-cache add git alpine-sdk upx RUN GO111MODULE=on go mod vendor -RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags '-s -w' -o binary ./ +RUN CGO_ENABLED=0 GOOS=$OS GOARCH=$ARCH go build -ldflags '-s -w' -o binary ./ RUN upx -f --brute binary FROM scratch From 87d80a922d11e5f904f5e19cb796e8492cc436b0 Mon Sep 17 00:00:00 2001 From: Sidd Shah Date: Sat, 4 Apr 2020 00:34:00 -0400 Subject: [PATCH 2/5] Add github workflow Automatically build for amd64 and arm64 --- .github/workflows/main.yml | 43 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..09cb6ee --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,43 @@ +# This is a basic workflow to help you get started with Actions + +name: CI + +# Controls when the action will run. Triggers the workflow on push or pull request +# events but only for the master branch +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + + # Runs a single command using the runners shell + - name: Build and Push Docker Image (Linux - AMD64) + uses: docker/build-push-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + repository: ekofr/pihole-exporter + tag_with_sha: true + tags: amd64 + build_args: OS=linux,ARCH=amd64 + - name: Build and Push Docker Image (Linux ARM64) + uses: docker/build-push-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + repository: ekofr/pihole-exporter + tag_with_sha: true + tags: armv64 + build_args: OS=linux,ARCH=arm64 From fc70035d934521632b01a91657c34fd92ab47cf8 Mon Sep 17 00:00:00 2001 From: Sidd Shah Date: Sat, 4 Apr 2020 00:40:17 -0400 Subject: [PATCH 3/5] Add default value for args Prevent travis build failure --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index fbc79d7..6d644e9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ FROM golang:alpine as builder -ARG OS -ARG ARCH +ARG OS=linux +ARG ARCH=amd64 WORKDIR /go/src/github.com/eko/pihole-exporter COPY . . From 0bcc3d8023b2948ad3834239143c03e37bb0c0a4 Mon Sep 17 00:00:00 2001 From: Sidd Shah Date: Sat, 4 Apr 2020 00:46:31 -0400 Subject: [PATCH 4/5] Make amd and arm tagging consistent --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 09cb6ee..6babffd 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -39,5 +39,5 @@ jobs: password: ${{ secrets.DOCKER_PASSWORD }} repository: ekofr/pihole-exporter tag_with_sha: true - tags: armv64 + tags: arm64 build_args: OS=linux,ARCH=arm64 From 4b670c34db3ea561e19134b04af28494e07568ab Mon Sep 17 00:00:00 2001 From: Sidd Shah Date: Sat, 4 Apr 2020 11:20:09 -0400 Subject: [PATCH 5/5] Make workflow step names consistent --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6babffd..5a91480 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -32,7 +32,7 @@ jobs: tag_with_sha: true tags: amd64 build_args: OS=linux,ARCH=amd64 - - name: Build and Push Docker Image (Linux ARM64) + - name: Build and Push Docker Image (Linux - ARM64) uses: docker/build-push-action@v1 with: username: ${{ secrets.DOCKER_USERNAME }}