Skip to content

Commit 44c7d06

Browse files
committed
update build system
Signed-off-by: Markus Blaschke <mblaschke82@gmail.com>
1 parent 4a47e91 commit 44c7d06

File tree

5 files changed

+187
-168
lines changed

5 files changed

+187
-168
lines changed
Lines changed: 49 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
name: "Release: docker"
22

33
on:
4-
schedule:
5-
- cron: '0 6 * * 1'
64
push:
75
branches:
86
- '**'
@@ -13,39 +11,52 @@ jobs:
1311
build:
1412
runs-on: ubuntu-latest
1513
steps:
16-
- uses: actions/checkout@v2
17-
- name: Docker meta
18-
id: docker_meta
19-
uses: crazy-max/ghaction-docker-meta@v1
20-
with:
21-
images: webdevops/azure-devops-exporter,quay.io/webdevops/azure-devops-exporter
22-
#tag-sha: true
23-
24-
- name: Set up QEMU
25-
uses: docker/setup-qemu-action@v1
26-
27-
- name: Set up Docker Buildx
28-
uses: docker/setup-buildx-action@v1
29-
30-
- name: Login to DockerHub
31-
uses: docker/login-action@v1
32-
with:
33-
username: ${{ secrets.DOCKERHUB_USERNAME }}
34-
password: ${{ secrets.DOCKERHUB_TOKEN }}
35-
36-
- name: Login to Quay
37-
uses: docker/login-action@v1
38-
with:
39-
registry: quay.io
40-
username: ${{ secrets.QUAY_USERNAME }}
41-
password: ${{ secrets.QUAY_TOKEN }}
42-
43-
- name: Build and push
44-
uses: docker/build-push-action@v2
45-
with:
46-
context: .
47-
file: ./Dockerfile
48-
platforms: linux/amd64,linux/arm,linux/arm64,linux/ppc64le
49-
push: ${{ github.event_name != 'pull_request' }}
50-
tags: ${{ steps.docker_meta.outputs.tags }}
51-
labels: ${{ steps.docker_meta.outputs.labels }}
14+
- uses: actions/checkout@v2
15+
16+
- name: Run Gosec Security Scanner
17+
uses: securego/gosec@master
18+
with:
19+
args: ./...
20+
21+
- name: Run Golangci lint
22+
uses: golangci/golangci-lint-action@v2
23+
with:
24+
version: latest
25+
args: -E exportloopref,gofmt --timeout=30m
26+
27+
- name: Docker meta
28+
id: docker_meta
29+
uses: docker/metadata-action@v3
30+
with:
31+
images: webdevops/${{ github.event.repository.name }},quay.io/webdevops/${{ github.event.repository.name }}
32+
labels: |
33+
io.artifacthub.package.readme-url=https://raw.githubusercontent.com/${{ github.repository }}/${{ github.event.repository.default_branch }}/README.md
34+
35+
- name: Set up QEMU
36+
uses: docker/setup-qemu-action@v1
37+
38+
- name: Set up Docker Buildx
39+
uses: docker/setup-buildx-action@v1
40+
41+
- name: Login to DockerHub
42+
uses: docker/login-action@v1
43+
with:
44+
username: ${{ secrets.DOCKERHUB_USERNAME }}
45+
password: ${{ secrets.DOCKERHUB_TOKEN }}
46+
47+
- name: Login to Quay
48+
uses: docker/login-action@v1
49+
with:
50+
registry: quay.io
51+
username: ${{ secrets.QUAY_USERNAME }}
52+
password: ${{ secrets.QUAY_TOKEN }}
53+
54+
- name: Build and push
55+
uses: docker/build-push-action@v2
56+
with:
57+
context: .
58+
file: ./Dockerfile
59+
platforms: linux/amd64,linux/arm,linux/arm64,linux/ppc64le
60+
push: ${{ github.event_name != 'pull_request' }}
61+
tags: ${{ steps.docker_meta.outputs.tags }}
62+
labels: ${{ steps.docker_meta.outputs.labels }}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: "Scheduled: docker"
2+
3+
on:
4+
schedule:
5+
- cron: '0 6 * * 1'
6+
7+
jobs:
8+
build:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v2
12+
13+
- name: Run Gosec Security Scanner
14+
uses: securego/gosec@master
15+
with:
16+
args: ./...
17+
18+
- name: Run Golangci lint
19+
uses: golangci/golangci-lint-action@v2
20+
with:
21+
version: latest
22+
args: -E exportloopref,gofmt --timeout=30m
23+
24+
- name: Docker meta
25+
id: docker_meta
26+
uses: docker/metadata-action@v3
27+
with:
28+
images: webdevops/${{ github.event.repository.name }},quay.io/webdevops/${{ github.event.repository.name }}
29+
labels: |
30+
io.artifacthub.package.readme-url=https://raw.githubusercontent.com/${{ github.repository }}/${{ github.event.repository.default_branch }}/README.md
31+
32+
- name: Set up QEMU
33+
uses: docker/setup-qemu-action@v1
34+
35+
- name: Set up Docker Buildx
36+
uses: docker/setup-buildx-action@v1
37+
38+
- name: Login to DockerHub
39+
uses: docker/login-action@v1
40+
with:
41+
username: ${{ secrets.DOCKERHUB_USERNAME }}
42+
password: ${{ secrets.DOCKERHUB_TOKEN }}
43+
44+
- name: Login to Quay
45+
uses: docker/login-action@v1
46+
with:
47+
registry: quay.io
48+
username: ${{ secrets.QUAY_USERNAME }}
49+
password: ${{ secrets.QUAY_TOKEN }}
50+
51+
- name: Build and push
52+
uses: docker/build-push-action@v2
53+
with:
54+
context: .
55+
file: ./Dockerfile
56+
platforms: linux/amd64,linux/arm,linux/arm64,linux/ppc64le
57+
push: ${{ github.event_name != 'pull_request' }}
58+
tags: ${{ steps.docker_meta.outputs.tags }}
59+
labels: ${{ steps.docker_meta.outputs.labels }}

Dockerfile

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
1-
FROM golang:1.17 as build
1+
FROM golang:1.17-alpine as build
22

3-
WORKDIR /go/src/github.com/webdevops/azure-devops-exporter
3+
RUN apk upgrade --no-cache --force
4+
RUN apk add --update build-base make git
45

5-
# Get deps (cached)
6-
COPY ./go.mod /go/src/github.com/webdevops/azure-devops-exporter
7-
COPY ./go.sum /go/src/github.com/webdevops/azure-devops-exporter
8-
COPY ./Makefile /go/src/github.com/webdevops/azure-devops-exporter
9-
RUN make dependencies
6+
WORKDIR /go/src/github.com/webdevops/azure-devops-exporter
107

118
# Compile
129
COPY ./ /go/src/github.com/webdevops/azure-devops-exporter
10+
RUN make dependencies
1311
RUN make test
14-
RUN make lint
1512
RUN make build
1613
RUN ./azure-devops-exporter --help
1714

Makefile

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,20 @@ build-push-development:
3434
test:
3535
go test ./...
3636

37+
.PHONY: dependencies
38+
dependencies:
39+
go mod vendor
40+
3741
.PHONY: lint
3842
lint: $(GOLANGCI_LINT_BIN)
39-
$(GOLANGCI_LINT_BIN) run -E exportloopref,gofmt --timeout=10m
43+
$(GOLANGCI_LINT_BIN) run -E exportloopref,gofmt --timeout=30m
4044

41-
.PHONY: dependencies
42-
dependencies: $(GOLANGCI_LINT_BIN)
45+
.PHONY: gosec
46+
gosec: $(GOSEC_BIN)
47+
$(GOSEC_BIN) ./...
4348

4449
$(GOLANGCI_LINT_BIN):
45-
curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(FIRST_GOPATH)/bin v1.32.2
50+
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin
51+
52+
$(GOSEC_BIN):
53+
curl -sfL https://raw.githubusercontent.com/securego/gosec/master/install.sh | sh -s -- -b $(FIRST_GOPATH)/bin v2.7.0

0 commit comments

Comments
 (0)