Skip to content

Commit 5b4b5aa

Browse files
committed
Build and publish wg-easy tools image to ghcr
Signed-off-by: Evans Mungai <[email protected]>
1 parent cba7c04 commit 5b4b5aa

File tree

3 files changed

+67
-7
lines changed

3 files changed

+67
-7
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: WG-Easy Image CI
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
paths:
7+
- 'applications/wg-easy/container/**'
8+
- '.github/workflows/wg-easy-container.yml'
9+
pull_request:
10+
paths:
11+
- 'applications/wg-easy/container/**'
12+
- '.github/workflows/wg-easy-container.yml'
13+
workflow_dispatch:
14+
15+
env:
16+
DEV_CONTAINER_REGISTRY: ghcr.io
17+
DEV_CONTAINER_IMAGE: platform-examples/wg-easy-tools
18+
19+
jobs:
20+
build-and-push:
21+
runs-on: ubuntu-latest
22+
permissions:
23+
contents: read
24+
packages: write
25+
26+
steps:
27+
- name: Checkout repository
28+
uses: actions/checkout@v4
29+
30+
- name: Set up Docker Buildx
31+
uses: docker/setup-buildx-action@v3
32+
33+
- name: Log in to GHCR
34+
uses: docker/login-action@v3
35+
with:
36+
registry: ${{ env.DEV_CONTAINER_REGISTRY }}
37+
username: ${{ github.actor }}
38+
password: ${{ secrets.GITHUB_TOKEN }}
39+
40+
- name: Extract metadata
41+
id: meta
42+
uses: docker/metadata-action@v5
43+
with:
44+
images: ${{ env.DEV_CONTAINER_REGISTRY }}/${{ env.DEV_CONTAINER_IMAGE }}
45+
tags: |
46+
type=raw,value=latest,enable={{is_default_branch}}
47+
type=sha,format=short
48+
type=ref,event=branch
49+
type=ref,event=pr
50+
51+
- name: Build and push image
52+
uses: docker/build-push-action@v6
53+
with:
54+
context: applications/wg-easy
55+
file: applications/wg-easy/container/Containerfile
56+
push: ${{ github.event_name != 'pull_request' }}
57+
tags: ${{ steps.meta.outputs.tags }}
58+
labels: ${{ steps.meta.outputs.labels }}
59+
cache-from: type=gha
60+
cache-to: type=gha,mode=max

applications/wg-easy/Taskfile.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@ vars:
2929
VM_NAME: '{{.VM_NAME | default (printf "%s-dev" (or (env "GUSER") "user"))}}'
3030

3131
# Container workflow configuration
32-
DEV_CONTAINER_REPOSITORY: '{{.DEV_CONTAINER_REPOSITORY | default "docker.io/wg-easy"}}'
33-
DEV_CONTAINER_IMAGE: '{{.DEV_CONTAINER_IMAGE | default "wg-easy"}}'
32+
DEV_CONTAINER_REGISTRY: '{{.DEV_CONTAINER_REGISTRY | default "ghcr.io"}}'
33+
DEV_CONTAINER_IMAGE: '{{.DEV_CONTAINER_IMAGE | default "platform-examples/wg-easy-tools"}}'
3434
DEV_CONTAINER_TAG: '{{.DEV_CONTAINER_TAG | default "latest"}}'
35-
DEV_CONTAINER_NAME: '{{.DEV_CONTAINER_NAME | default "wg-easy-dev"}}'
35+
DEV_CONTAINER_NAME: '{{.DEV_CONTAINER_NAME | default "wg-easy-tools"}}'
3636
CONTAINER_RUNTIME: '{{.CONTAINER_RUNTIME | default "podman"}}'
3737

3838
tasks:

applications/wg-easy/taskfiles/container.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ tasks:
99
CONTAINERFILE: '{{.CONTAINERFILE | default "./container/Containerfile"}}'
1010
BUILD_ARGS: '{{.BUILD_ARGS | default ""}}'
1111
requires:
12-
vars: [DEV_CONTAINER_REPOSITORY, DEV_CONTAINER_IMAGE, CONTAINERFILE]
12+
vars: [DEV_CONTAINER_REGISTRY, DEV_CONTAINER_IMAGE, CONTAINERFILE]
1313

1414
cmds:
15-
- '{{.CONTAINER_RUNTIME}} build -t {{.DEV_CONTAINER_REPOSITORY}}/{{.DEV_CONTAINER_IMAGE}}:{{.DEV_CONTAINER_TAG}} -f {{.CONTAINERFILE}} .'
15+
- '{{.CONTAINER_RUNTIME}} build -t {{.DEV_CONTAINER_REGISTRY}}/{{.DEV_CONTAINER_IMAGE}}:{{.DEV_CONTAINER_TAG}} -f {{.CONTAINERFILE}} .'
1616

1717
# Start development container in background.
1818
start:
@@ -22,7 +22,7 @@ tasks:
2222
vars:
2323
DEV_CONTAINER_TAG: '{{.DEV_CONTAINER_TAG | default "latest"}}'
2424
requires:
25-
vars: [DEV_CONTAINER_REPOSITORY, DEV_CONTAINER_IMAGE, DEV_CONTAINER_TAG, DEV_CONTAINER_NAME, REPLICATED_API_TOKEN]
25+
vars: [DEV_CONTAINER_REGISTRY, DEV_CONTAINER_IMAGE, DEV_CONTAINER_TAG, DEV_CONTAINER_NAME, REPLICATED_API_TOKEN]
2626

2727
status:
2828
- '{{.CONTAINER_RUNTIME}} ps | grep -q "{{.DEV_CONTAINER_NAME}}"'
@@ -32,7 +32,7 @@ tasks:
3232
CONTAINER_ID=$({{.CONTAINER_RUNTIME}} run --rm --name {{.DEV_CONTAINER_NAME}} -d \
3333
-v $(pwd):/workspace \
3434
-e REPLICATED_API_TOKEN={{ .REPLICATED_API_TOKEN }} \
35-
{{.DEV_CONTAINER_REPOSITORY}}/{{.DEV_CONTAINER_IMAGE}}:{{.DEV_CONTAINER_TAG}} bash -c 'trap "exit 0" TERM; sleep infinity & wait')
35+
{{.DEV_CONTAINER_REGISTRY}}/{{.DEV_CONTAINER_IMAGE}}:{{.DEV_CONTAINER_TAG}} bash -c 'trap "exit 0" TERM; sleep infinity & wait')
3636
3737
if [ $? -eq 0 ]; then
3838
echo "Development container started successfully with ID: $CONTAINER_ID"

0 commit comments

Comments
 (0)