CI : tags de version sur les images Docker
Build and Publish Docker Image / build-and-push-image (push) Successful in 48s
Build and Publish Docker Image / build-and-push-image (push) Successful in 48s
En plus de :latest, chaque image (frontend + backend) est taguée : - <version> (semver de package.json, ex. 1.0.0) - <version>-<build> (numéro de run Gitea, unique/incrémental) - <sha court> (commit exact) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -17,28 +17,56 @@ jobs:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
# Simple login directly with docker login
|
||||
- name: Compute version and image names
|
||||
run: |
|
||||
LOWERCASE_IMAGE=$(echo "${{ env.IMAGE_NAME }}" | tr '[:upper:]' '[:lower:]')
|
||||
# Version sémantique lue dans package.json (sans dépendre de node)
|
||||
VERSION=$(sed -n 's/.*"version"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' package.json | head -1)
|
||||
[ -z "$VERSION" ] && VERSION="0.0.0"
|
||||
BUILD="${{ gitea.run_number }}"
|
||||
SHORT_SHA=$(echo "${{ gitea.sha }}" | cut -c1-7)
|
||||
{
|
||||
echo "FRONT=${{ env.REGISTRY }}/$LOWERCASE_IMAGE"
|
||||
echo "BACK=${{ env.REGISTRY }}/$LOWERCASE_IMAGE-backend"
|
||||
echo "VERSION=$VERSION"
|
||||
echo "TAG=$VERSION-$BUILD"
|
||||
echo "SHORT_SHA=$SHORT_SHA"
|
||||
} >> "$GITHUB_ENV"
|
||||
echo "Publication version $VERSION (build $BUILD, commit $SHORT_SHA)"
|
||||
|
||||
- name: Log in to the Container registry
|
||||
run: echo "${{ secrets.DOCKER_TOKEN }}" | docker login ${{ env.REGISTRY }} -u "${{ gitea.actor }}" --password-stdin
|
||||
|
||||
# Frontend image (nginx + SPA)
|
||||
- name: Build frontend Docker image
|
||||
run: |
|
||||
LOWERCASE_IMAGE=$(echo "${{ env.IMAGE_NAME }}" | tr '[:upper:]' '[:lower:]')
|
||||
docker build -t ${{ env.REGISTRY }}/$LOWERCASE_IMAGE:latest .
|
||||
docker build \
|
||||
-t "$FRONT:latest" \
|
||||
-t "$FRONT:$VERSION" \
|
||||
-t "$FRONT:$TAG" \
|
||||
-t "$FRONT:$SHORT_SHA" \
|
||||
.
|
||||
|
||||
- name: Push frontend Docker image
|
||||
run: |
|
||||
LOWERCASE_IMAGE=$(echo "${{ env.IMAGE_NAME }}" | tr '[:upper:]' '[:lower:]')
|
||||
docker push ${{ env.REGISTRY }}/$LOWERCASE_IMAGE:latest
|
||||
docker push "$FRONT:latest"
|
||||
docker push "$FRONT:$VERSION"
|
||||
docker push "$FRONT:$TAG"
|
||||
docker push "$FRONT:$SHORT_SHA"
|
||||
|
||||
# Backend image (Express API)
|
||||
- name: Build backend Docker image
|
||||
run: |
|
||||
LOWERCASE_IMAGE=$(echo "${{ env.IMAGE_NAME }}" | tr '[:upper:]' '[:lower:]')
|
||||
docker build -t ${{ env.REGISTRY }}/$LOWERCASE_IMAGE-backend:latest ./server
|
||||
docker build \
|
||||
-t "$BACK:latest" \
|
||||
-t "$BACK:$VERSION" \
|
||||
-t "$BACK:$TAG" \
|
||||
-t "$BACK:$SHORT_SHA" \
|
||||
./server
|
||||
|
||||
- name: Push backend Docker image
|
||||
run: |
|
||||
LOWERCASE_IMAGE=$(echo "${{ env.IMAGE_NAME }}" | tr '[:upper:]' '[:lower:]')
|
||||
docker push ${{ env.REGISTRY }}/$LOWERCASE_IMAGE-backend:latest
|
||||
docker push "$BACK:latest"
|
||||
docker push "$BACK:$VERSION"
|
||||
docker push "$BACK:$TAG"
|
||||
docker push "$BACK:$SHORT_SHA"
|
||||
|
||||
Reference in New Issue
Block a user