Skip to content

Commit 5e8a44c

Browse files
author
Jorge Turrado Ferrero
authored
chore: Add workflow for testing dockerfiles (#20)
1 parent db20392 commit 5e8a44c

File tree

3 files changed

+104
-21
lines changed

3 files changed

+104
-21
lines changed
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: Docker images validation
2+
on:
3+
- pull_request
4+
5+
jobs:
6+
validate-dockerfile:
7+
name: Validate dockerfile
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions/checkout@v3
11+
12+
- uses: dorny/paths-filter@v2
13+
id: filter
14+
with:
15+
filters: |
16+
dockerfiles:
17+
- 'Dockerfile*'
18+
19+
- name: Build images
20+
if: steps.filter.outputs.dockerfile == 'true'
21+
run: make docker-build
22+
23+
validate-build-tools:
24+
name: Validate build-tools
25+
runs-on: ubuntu-latest
26+
steps:
27+
- uses: actions/checkout@v3
28+
29+
- uses: dorny/paths-filter@v2
30+
id: filter
31+
with:
32+
filters: |
33+
dockerfile:
34+
- 'tools/**'
35+
36+
- name: Build tools
37+
if: steps.filter.outputs.dockerfile == 'true'
38+
run: make docker-build-tools
39+
40+
validate-test-server:
41+
name: Validate test-server
42+
runs-on: ubuntu-latest
43+
steps:
44+
- uses: actions/checkout@v3
45+
46+
- uses: dorny/paths-filter@v2
47+
id: filter
48+
with:
49+
filters: |
50+
dockerfile:
51+
- 'test-git-server/**'
52+
53+
- name: Build images
54+
if: steps.filter.outputs.dockerfile == 'true'
55+
run: make docker-git-server-tool
56+
57+
validate-dev-container:
58+
name: Validate dev-container
59+
runs-on: ubuntu-latest
60+
steps:
61+
- uses: dorny/paths-filter@v2
62+
id: filter
63+
with:
64+
filters: |
65+
dockerfile:
66+
- 'Dockerfile*'
67+
68+
- name: Build images
69+
if: steps.filter.outputs.dockerfile == 'true'
70+
run: make docker-dev-container

.github/workflows/release.yaml

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ jobs:
2323
run: |
2424
echo DOCKER_IMAGE_REGISTRY=$(echo "${{ env.REGISTRY}}/${{ env.IMAGE_NAME }}" | tr '[:upper:]' '[:lower:]') >> $GITHUB_ENV
2525
26-
- name: Test DOCKER_IMAGE_REGISTRY value
27-
run: echo ${{ env.DOCKER_IMAGE_REGISTRY }}
2826
2927
- name: Set up Go
3028
uses: actions/setup-go@v1
@@ -39,10 +37,6 @@ jobs:
3937
env:
4038
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4139

42-
- name: Get the version
43-
id: get_version
44-
run: echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/v}
45-
4640
- name: Log in to the Container registry
4741
uses: docker/login-action@v1
4842
with:
@@ -51,10 +45,6 @@ jobs:
5145
password: ${{ secrets.GITHUB_TOKEN }}
5246

5347
- name: Build and push Docker image
54-
uses: docker/build-push-action@v2
55-
with:
56-
context: .
57-
push: true
58-
tags: |
59-
${{ env.DOCKER_IMAGE_REGISTRY }}:${{ steps.get_version.outputs.VERSION }}
60-
${{ env.DOCKER_IMAGE_REGISTRY }}:latest
48+
run: make publish
49+
env:
50+
VERSION: ${GITHUB_REF#refs/tags/v}

Makefile

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,15 @@ GO_OUTPUT = $(CURDIR)/bin/$(APP_NAME)
55
APP_NAME ?= helm-repo-updater
66
GO_TEST_DEFAULT_ARG = -v ./internal/...
77

8-
IMAGE_REGISTRY ?= ghcr.io
9-
IMAGE_REPO ?= docplanner
8+
IMAGE_REGISTRY ?= ghcr.io
9+
IMAGE_REPO ?= docplanner
10+
VERSION ?= develop
1011

11-
IMAGE_BUILD_TOOLS = $(IMAGE_REGISTRY)/$(IMAGE_REPO)/helm-repo-updater/build-tools:develop
12-
IMAGE_GIT_REPO_SERVER_TOOL = $(IMAGE_REGISTRY)/$(IMAGE_REPO)/helm-repo-updater/git-repo-server:develop
12+
13+
IMAGE = $(IMAGE_REGISTRY)/$(IMAGE_REPO)/helm-repo-updater:${VERSION}
14+
IMAGE_LATEST = $(IMAGE_REGISTRY)/$(IMAGE_REPO)/helm-repo-updater:latest
15+
IMAGE_BUILD_TOOLS = $(IMAGE_REGISTRY)/$(IMAGE_REPO)/helm-repo-updater/build-tools:${VERSION}
16+
IMAGE_GIT_REPO_SERVER_TOOL = $(IMAGE_REGISTRY)/$(IMAGE_REPO)/helm-repo-updater/git-repo-server:${VERSION}
1317

1418
.PHONY: build
1519
build: clean
@@ -71,14 +75,33 @@ golangci-lint: $(GOBIN_TOOL)
7175
gofumpt: $(GOBIN_TOOL)
7276
GOOS=linux $(GOBIN_TOOL) -run mvdan.cc/gofumpt -l -w .
7377

74-
.PHONY: publish-build-tools
75-
publish-build-tools: ## Publish build-tools image
78+
.PHONY: docker-build
79+
docker-build: ## Build main image
80+
docker build -f Dockerfile -t $(IMAGE) -t $(IMAGE_LATEST) .
81+
82+
.PHONY: publish
83+
publish: docker-build ## Publish main image
84+
docker push $(IMAGE)
85+
docker push $(IMAGE_LATEST)
86+
87+
.PHONY: docker-dev-container
88+
docker-dev-container: ## Build devcontainer image
89+
docker build -f .devcontainer/Dockerfile .
90+
91+
.PHONY: docker-build-tools
92+
docker-build-tools: ## Build build-tools image
7693
docker build -f tools/build-tools.Dockerfile -t $(IMAGE_BUILD_TOOLS) .
94+
95+
.PHONY: publish-build-tools
96+
publish-build-tools: docker-build-tools ## Publish build-tools image
7797
docker push $(IMAGE_BUILD_TOOLS)
7898

79-
.PHONY: publish-git-server-tool
80-
publish-git-server-tool: ## Publish git-server-tool image
99+
.PHONY: docker-git-server-tool
100+
docker-git-server-tool: ## Build git-server-tool image
81101
docker build -f test-git-server/Dockerfile -t $(IMAGE_GIT_REPO_SERVER_TOOL) .
102+
103+
.PHONY: publish-git-server-tool
104+
publish-git-server-tool: docker-git-server-tool ## Publish git-server-tool image
82105
docker push $(IMAGE_GIT_REPO_SERVER_TOOL)
83106

84107
$(GOBIN_TOOL):

0 commit comments

Comments
 (0)