CI: Version-Tags bei Git-Tags (v*) - zusaetzlich zu latest+sha
Image bauen und in die Registry schieben / build (push) Failing after 4s
Image bauen und in die Registry schieben / build (push) Failing after 4s
- Push auf main -> git.somantis.net/j4stmarkus/trainingsplan:latest + :<sha> - Push eines Git-Tags v* -> zusaetzlich :vX.Y.Z (z.B. :v1.0.0) - Nutzer ziehen :latest (rolling) oder eine feste Version per Tag
This commit is contained in:
1 parent
1984ce700c
commit
10f3e713c5
1 file changed
+20
-7
@@ -3,6 +3,7 @@ name: Image bauen und in die Registry schieben
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [main]
|
branches: [main]
|
||||||
|
tags: ['v*']
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
@@ -12,9 +13,8 @@ jobs:
|
|||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
# Der Job laeuft in einem Container, der je nach Runner-Label keine
|
# Der Job laeuft in einem Container, der je nach Runner-Label keine
|
||||||
# Docker-CLI mitbringt (z.B. node:20-bookworm). Sicherstellen, dass
|
# Docker-CLI mitbringt. Sicherstellen, dass `docker` vorhanden ist;
|
||||||
# `docker` vorhanden ist; der Runner muss den Docker-Socket
|
# der Runner muss den Docker-Socket (-v /var/run/docker.sock) stellen.
|
||||||
# (-v /var/run/docker.sock) bereitstellen.
|
|
||||||
- name: Docker-CLI sicherstellen
|
- name: Docker-CLI sicherstellen
|
||||||
run: |
|
run: |
|
||||||
if ! command -v docker >/dev/null 2>&1; then
|
if ! command -v docker >/dev/null 2>&1; then
|
||||||
@@ -24,10 +24,23 @@ jobs:
|
|||||||
- name: Bei der Registry anmelden
|
- name: Bei der Registry anmelden
|
||||||
run: echo "${{ secrets.REGISTRY_TOKEN }}" | docker login git.somantis.net -u "${{ secrets.REGISTRY_USER }}" --password-stdin
|
run: echo "${{ secrets.REGISTRY_TOKEN }}" | docker login git.somantis.net -u "${{ secrets.REGISTRY_USER }}" --password-stdin
|
||||||
|
|
||||||
|
# Tags: main-Push -> latest + SHA; Tag-Push (v*) -> vX.Y.Z + SHA.
|
||||||
|
# So zieht man entweder die aktuelle Version (:latest) oder eine
|
||||||
|
# feste Version (z.B. :v1.0.0).
|
||||||
|
- name: Image-Tags bestimmen
|
||||||
|
id: img
|
||||||
|
run: |
|
||||||
|
IMG="git.somantis.net/j4stmarkus/trainingsplan"
|
||||||
|
TAGS="$IMG:latest"
|
||||||
|
if [ "${{ github.ref_type }}" = "tag" ]; then
|
||||||
|
TAGS="$TAGS $IMG:${{ github.ref_name }}"
|
||||||
|
fi
|
||||||
|
TAGS="$TAGS $IMG:${{ github.sha }}"
|
||||||
|
echo "tags=$TAGS" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "tags=$TAGS"
|
||||||
|
|
||||||
- name: Image bauen
|
- name: Image bauen
|
||||||
run: docker build --no-cache -t git.somantis.net/j4stmarkus/trainingsplan:latest -t git.somantis.net/j4stmarkus/trainingsplan:${{ github.sha }} .
|
run: docker build --no-cache -t ${{ steps.img.outputs.tags }} .
|
||||||
|
|
||||||
- name: Image pushen
|
- name: Image pushen
|
||||||
run: |
|
run: docker push ${{ steps.img.outputs.tags }}
|
||||||
docker push git.somantis.net/j4stmarkus/trainingsplan:latest
|
|
||||||
docker push git.somantis.net/j4stmarkus/trainingsplan:${{ github.sha }}
|
|
||||||
Reference in new issue
Block a user