Files
runners-images/.gitea/workflows/build-image.yml
T

82 lines
2.2 KiB
YAML

name: Build et push Docker
on:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Récupérer le dépôt
uses: actions/checkout@v4
- name: Préparer les variables
shell: bash
run: |
REPOSITORY_LOWER="$(printf '%s' "$GITHUB_REPOSITORY" \
| tr '[:upper:]' '[:lower:]')"
BRANCH_NAME="${GITHUB_REF_NAME:-${GITHUB_REF#refs/heads/}}"
BRANCH_SLUG="$(printf '%s' "$BRANCH_NAME" \
| tr '[:upper:]' '[:lower:]' \
| sed -E 's#[^a-z0-9._-]+#-#g; s#^[._-]+##; s#[._-]+$##')"
CALVER="$(date -u +'%y.%m')"
echo "REGISTRY=git.jst.ovh" >> "$GITHUB_ENV"
echo "IMAGE_NAME=git.jst.ovh/$REPOSITORY_LOWER/$BRANCH_SLUG" >> "$GITHUB_ENV"
echo "BRANCH_NAME=$BRANCH_NAME" >> "$GITHUB_ENV"
echo "BRANCH_SLUG=$BRANCH_SLUG" >> "$GITHUB_ENV"
echo "CALVER=$CALVER" >> "$GITHUB_ENV"
- name: Afficher les informations
shell: bash
run: |
echo "Branche : $BRANCH_NAME"
echo "Version CalVer : $CALVER"
echo "Image : $IMAGE_NAME:$CALVER"
- name: Vérifier Docker
shell: bash
run: |
docker version
docker info
- name: Connexion au registre
shell: bash
env:
REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }}
run: |
if [ -z "$REGISTRY_TOKEN" ]; then
echo "Le secret REGISTRY_TOKEN est absent"
exit 1
fi
printf '%s' "$REGISTRY_TOKEN" \
| docker login "$REGISTRY" \
--username "$GITHUB_ACTOR" \
--password-stdin
- name: Construire l'image
shell: bash
run: |
docker build \
--pull \
--tag "$IMAGE_NAME:$CALVER" \
--tag "$IMAGE_NAME:latest" \
.
- name: Publier les images
shell: bash
run: |
docker push "$IMAGE_NAME:$CALVER"
docker push "$IMAGE_NAME:latest"
- name: Résumé
shell: bash
run: |
echo "Images publiées :"
echo " $IMAGE_NAME:$CALVER"
echo " $IMAGE_NAME:latest"