Skip to content

Commit 87ef87a

Browse files
committed
fix: docker build ci
1 parent 4a742a1 commit 87ef87a

2 files changed

Lines changed: 130 additions & 88 deletions

File tree

.github/workflows/build.yml

Lines changed: 56 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -43,95 +43,63 @@ jobs:
4343
bin/druid_rcon_web_rust
4444
.docker/entrypoint.sh
4545
.docker/druid-install-command.sh
46+
4647
docker-base:
47-
runs-on: ubuntu-latest
4848
needs: build
49-
strategy:
50-
matrix:
51-
include:
52-
- dockerfile: Dockerfile
53-
tag_suffix: ""
54-
- dockerfile: Dockerfile.steamcmd
55-
tag_suffix: "-steamcmd"
56-
steps:
57-
- uses: actions/checkout@v4
58-
with:
59-
fetch-depth: 0
60-
- name: Set up Docker Buildx
61-
uses: docker/setup-buildx-action@v3
62-
- name: Login to Docker Hub
63-
uses: docker/login-action@v3
64-
with:
65-
username: ${{ vars.DOCKERHUB_USERNAME }}
66-
password: ${{ secrets.DOCKERHUB_TOKEN }}
67-
- name: Login to Artifacts Registry
68-
uses: docker/login-action@v3
69-
with:
70-
registry: artifacts.druid.gg
71-
username: ${{ vars.DRUID_ARTIFACTS_REGISTRY_USERNAME }}
72-
password: ${{ secrets.DRUID_ARTIFACTS_REGISTRY_TOKEN }}
73-
#stable is still pretty bleeding edge at this point
74-
- name: Build and push Docker image
75-
uses: docker/build-push-action@v6
76-
with:
77-
context: .
78-
file: ${{ matrix.dockerfile }}
79-
tags: |
80-
highcard/druid:latest${{ matrix.tag_suffix }}
81-
highcard/druid:stable${{ matrix.tag_suffix }}
82-
highcard/druid:${{ needs.build.outputs.version }}${{ matrix.tag_suffix }}
83-
highcard/druid:${{ needs.build.outputs.version_tag }}${{ matrix.tag_suffix }}
84-
artifacts.druid.gg/druid-team/druid:latest${{ matrix.tag_suffix }}
85-
artifacts.druid.gg/druid-team/druid:stable${{ matrix.tag_suffix }}
86-
artifacts.druid.gg/druid-team/druid:${{ needs.build.outputs.version }}${{ matrix.tag_suffix }}
87-
artifacts.druid.gg/druid-team/druid:${{ needs.build.outputs.version_tag }}${{ matrix.tag_suffix }}
88-
push: true
89-
build-args: |
90-
VERSION=${{ needs.build.outputs.version }}
91-
GIT_COMMIT=${{ github.sha }}
92-
GIT_BRANCH=${{ github.ref_name }}
49+
uses: ./.github/workflows/docker-build-reusable.yml
50+
with:
51+
dockerfile: Dockerfile
52+
tag_suffix: ""
53+
version: ${{ needs.build.outputs.version }}
54+
version_tag: ${{ needs.build.outputs.version_tag }}
55+
secrets:
56+
DOCKERHUB_USERNAME: ${{ vars.DOCKERHUB_USERNAME }}
57+
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
58+
DRUID_ARTIFACTS_REGISTRY_USERNAME: ${{ vars.DRUID_ARTIFACTS_REGISTRY_USERNAME }}
59+
DRUID_ARTIFACTS_REGISTRY_TOKEN: ${{ secrets.DRUID_ARTIFACTS_REGISTRY_TOKEN }}
60+
61+
docker-steamcmd:
62+
needs: docker-base
63+
uses: ./.github/workflows/docker-build-reusable.yml
64+
with:
65+
dockerfile: Dockerfile.steamcmd
66+
tag_suffix: "-steamcmd"
67+
version: ${{ needs.build.outputs.version }}
68+
version_tag: ${{ needs.build.outputs.version_tag }}
69+
secrets:
70+
DOCKERHUB_USERNAME: ${{ vars.DOCKERHUB_USERNAME }}
71+
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
72+
DRUID_ARTIFACTS_REGISTRY_USERNAME: ${{ vars.DRUID_ARTIFACTS_REGISTRY_USERNAME }}
73+
DRUID_ARTIFACTS_REGISTRY_TOKEN: ${{ secrets.DRUID_ARTIFACTS_REGISTRY_TOKEN }}
9374

9475
docker-nix:
95-
runs-on: ubuntu-latest
96-
needs: [build, docker-base]
97-
strategy:
98-
matrix:
99-
include:
100-
- base_tag_suffix: ""
101-
tag_suffix: "-nix"
102-
- base_tag_suffix: "-steamcmd"
103-
tag_suffix: "-nix-steamcmd"
104-
steps:
105-
- uses: actions/checkout@v4
106-
with:
107-
fetch-depth: 0
108-
- name: Set up Docker Buildx
109-
uses: docker/setup-buildx-action@v3
110-
- name: Login to Docker Hub
111-
uses: docker/login-action@v3
112-
with:
113-
username: ${{ vars.DOCKERHUB_USERNAME }}
114-
password: ${{ secrets.DOCKERHUB_TOKEN }}
115-
- name: Login to Artifacts Registry
116-
uses: docker/login-action@v3
117-
with:
118-
registry: artifacts.druid.gg
119-
username: ${{ vars.DRUID_ARTIFACTS_REGISTRY_USERNAME }}
120-
password: ${{ secrets.DRUID_ARTIFACTS_REGISTRY_TOKEN }}
121-
- name: Build and push Nix Docker image
122-
uses: docker/build-push-action@v6
123-
with:
124-
context: .
125-
file: Dockerfile.nix
126-
tags: |
127-
highcard/druid:latest${{ matrix.tag_suffix }}
128-
highcard/druid:stable${{ matrix.tag_suffix }}
129-
highcard/druid:${{ needs.build.outputs.version }}${{ matrix.tag_suffix }}
130-
highcard/druid:${{ needs.build.outputs.version_tag }}${{ matrix.tag_suffix }}
131-
artifacts.druid.gg/druid-team/druid:latest${{ matrix.tag_suffix }}
132-
artifacts.druid.gg/druid-team/druid:stable${{ matrix.tag_suffix }}
133-
artifacts.druid.gg/druid-team/druid:${{ needs.build.outputs.version }}${{ matrix.tag_suffix }}
134-
artifacts.druid.gg/druid-team/druid:${{ needs.build.outputs.version_tag }}${{ matrix.tag_suffix }}
135-
push: true
136-
build-args: |
137-
VERSION=${{ needs.build.outputs.version }}${{ matrix.base_tag_suffix }}
76+
needs: [docker-base]
77+
uses: ./.github/workflows/docker-build-reusable.yml
78+
with:
79+
dockerfile: Dockerfile.nix
80+
tag_suffix: "-nix"
81+
version: ${{ needs.build.outputs.version }}
82+
version_tag: ${{ needs.build.outputs.version_tag }}
83+
base_tag_suffix: ""
84+
is_nix: true
85+
secrets:
86+
DOCKERHUB_USERNAME: ${{ vars.DOCKERHUB_USERNAME }}
87+
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
88+
DRUID_ARTIFACTS_REGISTRY_USERNAME: ${{ vars.DRUID_ARTIFACTS_REGISTRY_USERNAME }}
89+
DRUID_ARTIFACTS_REGISTRY_TOKEN: ${{ secrets.DRUID_ARTIFACTS_REGISTRY_TOKEN }}
90+
91+
docker-nix-steamcmd:
92+
needs: [docker-steamcmd]
93+
uses: ./.github/workflows/docker-build-reusable.yml
94+
with:
95+
dockerfile: Dockerfile.nix
96+
tag_suffix: "-nix-steamcmd"
97+
version: ${{ needs.build.outputs.version }}
98+
version_tag: ${{ needs.build.outputs.version_tag }}
99+
base_tag_suffix: "-steamcmd"
100+
is_nix: true
101+
secrets:
102+
DOCKERHUB_USERNAME: ${{ vars.DOCKERHUB_USERNAME }}
103+
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
104+
DRUID_ARTIFACTS_REGISTRY_USERNAME: ${{ vars.DRUID_ARTIFACTS_REGISTRY_USERNAME }}
105+
DRUID_ARTIFACTS_REGISTRY_TOKEN: ${{ secrets.DRUID_ARTIFACTS_REGISTRY_TOKEN }}
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
name: Build Docker Image
2+
on:
3+
workflow_call:
4+
inputs:
5+
dockerfile:
6+
required: true
7+
type: string
8+
tag_suffix:
9+
required: true
10+
type: string
11+
version:
12+
required: true
13+
type: string
14+
version_tag:
15+
required: true
16+
type: string
17+
base_tag_suffix:
18+
required: false
19+
type: string
20+
default: ""
21+
is_nix:
22+
required: false
23+
type: boolean
24+
default: false
25+
secrets:
26+
DOCKERHUB_USERNAME:
27+
required: true
28+
DOCKERHUB_TOKEN:
29+
required: true
30+
DRUID_ARTIFACTS_REGISTRY_USERNAME:
31+
required: true
32+
DRUID_ARTIFACTS_REGISTRY_TOKEN:
33+
required: true
34+
35+
jobs:
36+
build:
37+
runs-on: ubuntu-latest
38+
steps:
39+
- uses: actions/checkout@v4
40+
with:
41+
fetch-depth: 0
42+
- name: Set up Docker Buildx
43+
uses: docker/setup-buildx-action@v3
44+
- name: Login to Docker Hub
45+
uses: docker/login-action@v3
46+
with:
47+
username: ${{ secrets.DOCKERHUB_USERNAME }}
48+
password: ${{ secrets.DOCKERHUB_TOKEN }}
49+
- name: Login to Artifacts Registry
50+
uses: docker/login-action@v3
51+
with:
52+
registry: artifacts.druid.gg
53+
username: ${{ secrets.DRUID_ARTIFACTS_REGISTRY_USERNAME }}
54+
password: ${{ secrets.DRUID_ARTIFACTS_REGISTRY_TOKEN }}
55+
#stable is still pretty bleeding edge at this point
56+
- name: Build and push Docker image
57+
uses: docker/build-push-action@v6
58+
with:
59+
context: .
60+
file: ${{ inputs.dockerfile }}
61+
tags: |
62+
highcard/druid:latest${{ inputs.tag_suffix }}
63+
highcard/druid:stable${{ inputs.tag_suffix }}
64+
highcard/druid:${{ inputs.version }}${{ inputs.tag_suffix }}
65+
highcard/druid:${{ inputs.version_tag }}${{ inputs.tag_suffix }}
66+
artifacts.druid.gg/druid-team/druid:latest${{ inputs.tag_suffix }}
67+
artifacts.druid.gg/druid-team/druid:stable${{ inputs.tag_suffix }}
68+
artifacts.druid.gg/druid-team/druid:${{ inputs.version }}${{ inputs.tag_suffix }}
69+
artifacts.druid.gg/druid-team/druid:${{ inputs.version_tag }}${{ inputs.tag_suffix }}
70+
push: true
71+
build-args: |
72+
VERSION=${{ inputs.is_nix && format('{0}{1}', inputs.version, inputs.base_tag_suffix) || inputs.version }}
73+
GIT_COMMIT=${{ github.sha }}
74+
GIT_BRANCH=${{ github.ref_name }}

0 commit comments

Comments
 (0)