From a88c8ac2b1113d66e97cb88c0f459009a616fcaf Mon Sep 17 00:00:00 2001 From: GnomeZworc Date: Sun, 14 Dec 2025 22:14:19 +0100 Subject: [PATCH] add ci Signed-off-by: GnomeZworc --- .forgejo/workflows/build.yml | 73 ++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 .forgejo/workflows/build.yml diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml new file mode 100644 index 0000000..7607c4e --- /dev/null +++ b/.forgejo/workflows/build.yml @@ -0,0 +1,73 @@ +name: Release Workflow + +on: + push: + tags: + - '*' + branches: + - main + pull_request: + types: [closed] + 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: docker + needs: set-release-target + strategy: + matrix: + goos: [linux, windows, darwin] + goarch: [amd64, arm64] + binaries: [db, metadata] + env: + RELEASE_CIBLE: ${{ needs.set-release-target.outputs.release_cible }} + GOOS: ${{ matrix.goos }} + GOARCH: ${{ matrix.goarch }} + BINARI: ${{ matrix.binaries }} + CGO_ENABLED: 0 + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-go@v5 + with: + go-version: "1.21" + - name: Build du projet + run: | + echo "Building for $BINARI/$GOOS/$GOARCH (release: $RELEASE_CIBLE)" + go env GOOS GOARCH + go build -o dist/$BINARI_$GOOS_$GOARCH ./cmd/$BINARI + echo "artifact pour $RELEASE_CIBLE $BINARI $GOOS $GOARCH" > dist/$BINARI-$GOOS-$GOARCH.txt + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: ${{ matrix.binaries }}-${{ env.RELEASE_CIBLE }}-${{ matrix.goos }}-${{ matrix.goarch }} + path: dist/${{ matrix.binaries }}_${{ matrix.goos }}_${{ matrix.goarch }} + publish: + runs-on: docker + needs: build + steps: + - name: Download all build artifacts + uses: actions/download-artifact@v3 + with: + path: dist/ + - name: Publier tous les binaires + run: ls -l dist/ \ No newline at end of file