name: Release Workflow on: push: tags: - '*' branches: - main jobs: set-release-target: runs-on: docker outputs: release_cible: ${{ steps.setvar.outputs.release_cible }} steps: - name: Déterminer la release cible id: setvar run: | if [[ "${GITHUB_REF}" == refs/tags/* ]]; then TAG="${GITHUB_REF#refs/tags/}" echo "release_cible=$TAG" >> $GITHUB_OUTPUT elif [[ "${GITHUB_REF}" == "refs/heads/main" ]]; then echo "release_cible=latest" >> $GITHUB_OUTPUT else echo "release_cible=unknown" >> $GITHUB_OUTPUT fi - name: Afficher la variable run: echo "Release cible = ${{ steps.setvar.outputs.release_cible }}" build: runs-on: raw container: options: --privileged -v /var/run/docker.sock:/var/run/docker.sock needs: set-release-target steps: - name: Check out repository uses: actions/checkout@v3 - name: Install docker-cli run: | apt-get update apt-get install -y ca-certificates curl install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ tee /etc/apt/sources.list.d/docker.list > /dev/null apt-get update apt-get install -y docker-ce-cli - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login docker registry uses: docker/login-action@v2 with: username: ${{ forge.ACTOR }} password: ${{ secrets.PACKAGE }} registry: ${{ forge.SERVER_URL }} - name: Build and push uses: docker/build-push-action@v4 with: context: . push: true tags: git.g3e.fr/h6n/users:${{ needs.set-release-target.outputs.release_cible }} target: release