-
Notifications
You must be signed in to change notification settings - Fork 53
130 lines (114 loc) · 4.76 KB
/
build-and-publish-docker-images.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: Build and publish docker images when release is published
on:
release:
types: [ published ]
jobs:
Build-and-publish-docker-images:
runs-on: ubuntu-latest
if: github.repository == 'eclipse-aaspe/server'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Extract branch name
id: extract_branch
run: |
$branch = '${{ github.ref }}' -replace 'refs/heads/', ''
echo "branch=$branch" >> $env:GITHUB_OUTPUT
Write-Host "The current branch is: $branch"
shell: pwsh
- name: Generate Version Number
working-directory: src
id: generate_version_number
run: |
$branch = '${{ steps.extract_branch.outputs.branch }}'
$version = .\BuildVersionNumber.ps1 -suffix $VERSION_SUFFIX -branch $branch -githubRunNumber ${{ github.run_number }}
echo "version=$version" >> $env:GITHUB_OUTPUT
Write-Host "The version name to build is: $version"
shell: pwsh
- name: Set version number
id: set-version
run: echo "VERSION_NUMBER=$(echo ${{ steps.generate_version_number.outputs.version }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: adminshellio
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Build and publish multi-architecture Docker image for AASX Server Blazor
uses: docker/build-push-action@v6
with:
push: true
file: ./src/docker/Dockerfile-AasxServerBlazor
platforms: |
linux/amd64
linux/arm/v6
linux/arm/v7
linux/arm64
linux/arm64/v8
tags: |
adminshellio/aasx-server-blazor-for-demo:latest
adminshellio/aasx-server-blazor-for-demo:${{ env.VERSION_NUMBER }}
github-token: ${{ secrets.GITHUB_TOKEN }}
labels: "version =${{ env.VERSION_NUMBER }}"
- name: Build and publish multi-architecture Docker image for AasxServerCore
uses: docker/build-push-action@v6
with:
push: true
file: ./src/docker/Dockerfile-AasxServerAspNetCore
platforms: |
linux/amd64
linux/arm/v6
linux/arm/v7
linux/arm64
linux/arm64/v8
tags: |
adminshellio/aasx-server-aspnetcore-for-demo:latest
adminshellio/aasx-server-aspnetcore-for-demo:${{ env.VERSION_NUMBER }}
github-token: ${{ secrets.GITHUB_TOKEN }}
labels: "version =${{ env.VERSION_NUMBER }}"
# --------------------------------------------------------------------------------------------------
# These are the old specific docker image builds. We need to decide, if we want to delete them
# and only use the multi-platform builds
# --------------------------------------------------------------------------------------------------
- name: Build and publish AasxServerBlazor-arm32
uses: docker/build-push-action@v6
with:
push: true
load: true
file: ./src/docker/Dockerfile-AasxServerBlazor
platforms: linux/arm/v7
tags: adminshellio/aasx-server-blazor-for-demo-arm32:latest
github-token: ${{ secrets.GITHUB_TOKEN }}
labels: "version =${{ env.VERSION_NUMBER }}"
- name: Build and publish AasxServerBlazor-arm64
uses: docker/build-push-action@v6
with:
push: true
load: true
file: ./src/docker/Dockerfile-AasxServerBlazor-arm64
tags: adminshellio/aasx-server-blazor-for-demo-arm64:latest
github-token: ${{ secrets.GITHUB_TOKEN }}
labels: "version =${{ env.VERSION_NUMBER }}"
- name: Build and publish AasxServerCore-arm32
uses: docker/build-push-action@v6
with:
push: true
load: true
file: ./src/docker/Dockerfile-AasxServerAspNetCore
platforms: linux/arm/v7
tags: adminshellio/aasx-server-aspnetcore-for-demo-arm32:latest
github-token: ${{ secrets.GITHUB_TOKEN }}
labels: "version =${{ env.VERSION_NUMBER }}"
- name: Build and publish AasxServerCore-arm64
uses: docker/build-push-action@v6
with:
push: true
load: true
file: ./src/docker/Dockerfile-AasxServerAspNetCore
platforms: linux/arm64
tags: adminshellio/aasx-server-aspnetcore-for-demo-arm64:latest
github-token: ${{ secrets.GITHUB_TOKEN }}
labels: "version =${{ env.VERSION_NUMBER }}"