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 pmo-${{ env.VERSION }} 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 Buildah 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 VERSION=$(cat ${{ env.RELEASE_FILE }} | tr -d ' \n') # Stocker la valeur dans une variable d'environnement echo "VERSION=$VERSION" >> $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: | podman build -t ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAGS }} . for tag in "${IMAGE_TAGS[@]:1}"; do podman tag ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAME }}:${IMAGE_TAGS[0]} \ ${{ 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: | for tag in ${{ env.IMAGE_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