name: Build and Push Docker Image on: push: branches: - main # Changez cela si votre branche principale a un autre nom env: IMAGE_NAME: public/calibre-web IMAGE_TAGS: latest IMAGE_REGISTRY: niepce.petite-maison-orange.fr REGISTRY_USER: eric@coissac.eu REGISTRY_PASSWORD: ${{ secrets.NIEPCETOKEN }} CHECK: https://haoma.petite-maison-orange.fr/ping/7e80fab1-f1ed-4ece-81aa-cf9061cda5c4 RELEASE_FILE: calibre_web_latest.txt jobs: build: runs-on: ubuntu-latest steps: - name: Start the job run: | curl -fsS -m 10 --retry 5 \ ${{ env.CHECK }}/start shell: bash - name: install podman run: | apt-get update apt-get install -y podman - name: Checkout code uses: actions/checkout@v4 - name: Build image starting run: | curl -fsS -m 10 --retry 5 \ --data-raw "Buildind docker image for $(cat ${{ env.RELEASE_FILE }})" \ ${{ env.CHECK }}/log shell: bash - name: Read version file id: version run: | # Lire le contenu du fichier et supprimer les espaces/retours chariots SOFTVERSION=$(cat ${{ env.RELEASE_FILE }} | tr -d ' \n') # Stocker la valeur dans une variable d'environnement echo "SOFTVERSION=$SOFTVERSION" >> $GITEA_ENV - name: Add PMO version tag run: | echo "IMAGE_TAGS=${{ env.IMAGE_TAGS }} pmo-${{ env.SOFTVERSION }}" >> $GITEA_ENV - name: Podman login run: | podman login ${{ env.IMAGE_REGISTRY }} \ -u ${{ env.REGISTRY_USER }} \ -p ${{ env.REGISTRY_PASSWORD }} - name: Build and tag image run: | tags=(${{ env.IMAGE_TAGS }}) sep="" if [[ -n "${tags[1]}" ]] ; then sep=":" fi image=${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAME }}${sep}${tags[1]} docker build -t ${image} . docker save ${image} -o image.tar podman load -i image.tar for tag in "${tags[@]:1}" ; do podman tag ${image} \ ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAME }}:${tag} done - name: Canceled building if: cancelled() run: | curl -fsS -m 10 --retry 5 \ --data-raw "Building image cancelled for $(cat ${{ env.RELEASE_FILE }})" \ ${{ env.CHECK }}/fail exit 1 shell: bash - name: Build image failed if: failure() run: | curl -fsS -m 10 --retry 5 \ --data-raw "Failed to build docker image for $(cat ${{ env.RELEASE_FILE }})" \ ${{ env.CHECK }}/fail exit 1 shell: bash - name: Push image to registry run: | tags=(${{ env.IMAGE_TAGS }}) for tag in "${tags[@]}" ; do podman push ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAME }}:$tag done - name: Push image failed if: failure() run: | curl -fsS -m 10 --retry 5 \ --data-raw "Failed to push docker image for $(cat ${{ env.RELEASE_FILE }})" \ ${{ env.CHECK }}/fail exit 1 shell: bash - name: End of the job run: | curl -fsS -m 10 --retry 5 \ --data-raw "Build docker image for $(cat ${{ env.RELEASE_FILE }})" \ ${{ env.CHECK }} shell: bash