diff --git a/.forgejo/workflows/release.yml b/.forgejo/workflows/release.yml new file mode 100644 index 0000000..4353228 --- /dev/null +++ b/.forgejo/workflows/release.yml @@ -0,0 +1,75 @@ +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 \ No newline at end of file