Skip to content

Commit 261d9f1

Browse files
committed
chore: ci
1 parent 403d3c2 commit 261d9f1

2 files changed

Lines changed: 101 additions & 13 deletions

File tree

.github/workflows/build.yml

Lines changed: 89 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ jobs:
1010
- uses: actions/setup-go@v5
1111
with:
1212
go-version: "^1.21"
13-
- run: make test-integration-docker
14-
name: Run integration tests inside Docker
13+
#- run: make test-integration-docker
14+
# name: Run integration tests inside Docker
1515
- run: make test
1616
name: Unit tests
1717

@@ -78,6 +78,7 @@ jobs:
7878
version: ${{ needs.release.outputs.version }}
7979
version_tag: ${{ needs.release.outputs.version_tag }}
8080
runs_on: "ubuntu-latest"
81+
arch_suffix: "-amd64"
8182
secrets:
8283
DOCKERHUB_USERNAME: ${{ vars.DOCKERHUB_USERNAME }}
8384
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
@@ -92,13 +93,54 @@ jobs:
9293
version: ${{ needs.release.outputs.version }}
9394
version_tag: ${{ needs.release.outputs.version_tag }}
9495
runs_on: "ubuntu-24.04-arm"
96+
arch_suffix: "-arm64"
9597
secrets:
9698
DOCKERHUB_USERNAME: ${{ vars.DOCKERHUB_USERNAME }}
9799
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
98100
DRUID_ARTIFACTS_REGISTRY_USERNAME: ${{ vars.DRUID_ARTIFACTS_REGISTRY_USERNAME }}
99101
DRUID_ARTIFACTS_REGISTRY_TOKEN: ${{ secrets.DRUID_ARTIFACTS_REGISTRY_TOKEN }}
100-
docker-steamcmd:
102+
docker-base-manifest:
103+
name: Create multi-arch base manifests
101104
needs: [release, docker-base-amd64, docker-base-arm64]
105+
runs-on: ubuntu-latest
106+
if: ${{ needs.release.outputs.version != '' }}
107+
steps:
108+
- name: Login to Docker Hub
109+
uses: docker/login-action@v3
110+
with:
111+
username: ${{ vars.DOCKERHUB_USERNAME }}
112+
password: ${{ secrets.DOCKERHUB_TOKEN }}
113+
- name: Login to Artifacts Registry
114+
uses: docker/login-action@v3
115+
with:
116+
registry: artifacts.druid.gg
117+
username: ${{ vars.DRUID_ARTIFACTS_REGISTRY_USERNAME }}
118+
password: ${{ secrets.DRUID_ARTIFACTS_REGISTRY_TOKEN }}
119+
- name: Create and push base manifests
120+
uses: Noelware/docker-manifest-action@v1
121+
with:
122+
inputs: |
123+
highcard/druid:latest-amd64,highcard/druid:latest-arm64
124+
highcard/druid:stable-amd64,highcard/druid:stable-arm64
125+
highcard/druid:${{ needs.release.outputs.version }}-amd64,highcard/druid:${{ needs.release.outputs.version }}-arm64
126+
highcard/druid:${{ needs.release.outputs.version_tag }}-amd64,highcard/druid:${{ needs.release.outputs.version_tag }}-arm64
127+
artifacts.druid.gg/druid-team/druid:latest-amd64,artifacts.druid.gg/druid-team/druid:latest-arm64
128+
artifacts.druid.gg/druid-team/druid:stable-amd64,artifacts.druid.gg/druid-team/druid:stable-arm64
129+
artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version }}-amd64,artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version }}-arm64
130+
artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version_tag }}-amd64,artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version_tag }}-arm64
131+
tags: |
132+
highcard/druid:latest
133+
highcard/druid:stable
134+
highcard/druid:${{ needs.release.outputs.version }}
135+
highcard/druid:${{ needs.release.outputs.version_tag }}
136+
artifacts.druid.gg/druid-team/druid:latest
137+
artifacts.druid.gg/druid-team/druid:stable
138+
artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version }}
139+
artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version_tag }}
140+
push: true
141+
142+
docker-steamcmd:
143+
needs: [release, docker-base-manifest]
102144
uses: ./.github/workflows/docker-build-reusable.yml
103145
with:
104146
dockerfile: Dockerfile.steamcmd
@@ -111,7 +153,7 @@ jobs:
111153
DRUID_ARTIFACTS_REGISTRY_USERNAME: ${{ vars.DRUID_ARTIFACTS_REGISTRY_USERNAME }}
112154
DRUID_ARTIFACTS_REGISTRY_TOKEN: ${{ secrets.DRUID_ARTIFACTS_REGISTRY_TOKEN }}
113155
docker-nix-amd64:
114-
needs: [release, docker-base-amd64, docker-base-arm64]
156+
needs: [release, docker-base-manifest]
115157
uses: ./.github/workflows/docker-build-reusable.yml
116158
with:
117159
dockerfile: Dockerfile.nix
@@ -121,13 +163,14 @@ jobs:
121163
base_tag_suffix: ""
122164
is_nix: true
123165
runs_on: "ubuntu-latest"
166+
arch_suffix: "-amd64"
124167
secrets:
125168
DOCKERHUB_USERNAME: ${{ vars.DOCKERHUB_USERNAME }}
126169
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
127170
DRUID_ARTIFACTS_REGISTRY_USERNAME: ${{ vars.DRUID_ARTIFACTS_REGISTRY_USERNAME }}
128171
DRUID_ARTIFACTS_REGISTRY_TOKEN: ${{ secrets.DRUID_ARTIFACTS_REGISTRY_TOKEN }}
129172
docker-nix-arm64:
130-
needs: [release, docker-base-amd64, docker-base-arm64]
173+
needs: [release, docker-base-manifest]
131174
uses: ./.github/workflows/docker-build-reusable.yml
132175
with:
133176
dockerfile: Dockerfile.nix
@@ -137,6 +180,7 @@ jobs:
137180
base_tag_suffix: ""
138181
is_nix: true
139182
runs_on: "ubuntu-24.04-arm"
183+
arch_suffix: "-arm64"
140184
secrets:
141185
DOCKERHUB_USERNAME: ${{ vars.DOCKERHUB_USERNAME }}
142186
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
@@ -157,3 +201,43 @@ jobs:
157201
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
158202
DRUID_ARTIFACTS_REGISTRY_USERNAME: ${{ vars.DRUID_ARTIFACTS_REGISTRY_USERNAME }}
159203
DRUID_ARTIFACTS_REGISTRY_TOKEN: ${{ secrets.DRUID_ARTIFACTS_REGISTRY_TOKEN }}
204+
205+
docker-nix-manifest:
206+
name: Create multi-arch nix manifests
207+
needs: [release, docker-nix-amd64, docker-nix-arm64]
208+
runs-on: ubuntu-latest
209+
if: ${{ needs.release.outputs.version != '' }}
210+
steps:
211+
- name: Login to Docker Hub
212+
uses: docker/login-action@v3
213+
with:
214+
username: ${{ vars.DOCKERHUB_USERNAME }}
215+
password: ${{ secrets.DOCKERHUB_TOKEN }}
216+
- name: Login to Artifacts Registry
217+
uses: docker/login-action@v3
218+
with:
219+
registry: artifacts.druid.gg
220+
username: ${{ vars.DRUID_ARTIFACTS_REGISTRY_USERNAME }}
221+
password: ${{ secrets.DRUID_ARTIFACTS_REGISTRY_TOKEN }}
222+
- name: Create and push nix manifests
223+
uses: Noelware/docker-manifest-action@v1
224+
with:
225+
inputs: |
226+
highcard/druid:latest-nix-amd64,highcard/druid:latest-nix-arm64
227+
highcard/druid:stable-nix-amd64,highcard/druid:stable-nix-arm64
228+
highcard/druid:${{ needs.release.outputs.version }}-nix-amd64,highcard/druid:${{ needs.release.outputs.version }}-nix-arm64
229+
highcard/druid:${{ needs.release.outputs.version_tag }}-nix-amd64,highcard/druid:${{ needs.release.outputs.version_tag }}-nix-arm64
230+
artifacts.druid.gg/druid-team/druid:latest-nix-amd64,artifacts.druid.gg/druid-team/druid:latest-nix-arm64
231+
artifacts.druid.gg/druid-team/druid:stable-nix-amd64,artifacts.druid.gg/druid-team/druid:stable-nix-arm64
232+
artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version }}-nix-amd64,artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version }}-nix-arm64
233+
artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version_tag }}-nix-amd64,artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version_tag }}-nix-arm64
234+
tags: |
235+
highcard/druid:latest-nix
236+
highcard/druid:stable-nix
237+
highcard/druid:${{ needs.release.outputs.version }}-nix
238+
highcard/druid:${{ needs.release.outputs.version_tag }}-nix
239+
artifacts.druid.gg/druid-team/druid:latest-nix
240+
artifacts.druid.gg/druid-team/druid:stable-nix
241+
artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version }}-nix
242+
artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version_tag }}-nix
243+
push: true

.github/workflows/docker-build-reusable.yml

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ on:
2626
required: false
2727
type: string
2828
default: "ubuntu-latest"
29+
arch_suffix:
30+
required: false
31+
type: string
32+
default: ""
2933
secrets:
3034
DOCKERHUB_USERNAME:
3135
required: true
@@ -63,14 +67,14 @@ jobs:
6367
context: .
6468
file: ${{ inputs.dockerfile }}
6569
tags: |
66-
highcard/druid:latest${{ inputs.tag_suffix }}
67-
highcard/druid:stable${{ inputs.tag_suffix }}
68-
highcard/druid:${{ inputs.version }}${{ inputs.tag_suffix }}
69-
highcard/druid:${{ inputs.version_tag }}${{ inputs.tag_suffix }}
70-
artifacts.druid.gg/druid-team/druid:latest${{ inputs.tag_suffix }}
71-
artifacts.druid.gg/druid-team/druid:stable${{ inputs.tag_suffix }}
72-
artifacts.druid.gg/druid-team/druid:${{ inputs.version }}${{ inputs.tag_suffix }}
73-
artifacts.druid.gg/druid-team/druid:${{ inputs.version_tag }}${{ inputs.tag_suffix }}
70+
highcard/druid:latest${{ inputs.tag_suffix }}${{ inputs.arch_suffix }}
71+
highcard/druid:stable${{ inputs.tag_suffix }}${{ inputs.arch_suffix }}
72+
highcard/druid:${{ inputs.version }}${{ inputs.tag_suffix }}${{ inputs.arch_suffix }}
73+
highcard/druid:${{ inputs.version_tag }}${{ inputs.tag_suffix }}${{ inputs.arch_suffix }}
74+
artifacts.druid.gg/druid-team/druid:latest${{ inputs.tag_suffix }}${{ inputs.arch_suffix }}
75+
artifacts.druid.gg/druid-team/druid:stable${{ inputs.tag_suffix }}${{ inputs.arch_suffix }}
76+
artifacts.druid.gg/druid-team/druid:${{ inputs.version }}${{ inputs.tag_suffix }}${{ inputs.arch_suffix }}
77+
artifacts.druid.gg/druid-team/druid:${{ inputs.version_tag }}${{ inputs.tag_suffix }}${{ inputs.arch_suffix }}
7478
push: true
7579
build-args: |
7680
VERSION=${{ inputs.is_nix && format('{0}{1}', inputs.version, inputs.base_tag_suffix) || inputs.version }}

0 commit comments

Comments
 (0)