diff --git a/.forgejo/workflows/release.yml b/.forgejo/workflows/release.yml index b2c9fa3..bf4e8f2 100644 --- a/.forgejo/workflows/release.yml +++ b/.forgejo/workflows/release.yml @@ -40,11 +40,72 @@ jobs: - name: Build for ${{ matrix.goos }} run: | - GOOS=${{ matrix.goos }} GOARCH=amd64 go build -o workctl-${{ matrix.goos }} . + BUILD_NAME="workctl-${{ matrix.goos }}" + if [ "${{ matrix.goos }}" = "windows" ]; then + BUILD_NAME="${BUILD_NAME}.exe" + fi + GOOS=${{ matrix.goos }} GOARCH=amd64 go build -o ${BUILD_NAME} . ls -la - + - name: Upload artifact uses: actions/upload-artifact@v3 with: name: workctl-${{ matrix.goos }} - path: workctl-${{ matrix.goos }} + path: workctl-${{ matrix.goos }}${{ matrix.goos == 'windows' && '.exe' || '' }} + retention-days: 7 + + create_release: + needs: build + runs-on: ubuntu-latest + steps: + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + # Dies ist der Token, der Forgejo erlaubt, das Release zu erstellen + # Du musst einen Gitea/Forgejo API-Token als Repository Secret (z.B. GITEA_TOKEN) hinterlegen. + # Der Token benötigt die Berechtigung "write:releases" oder "repo". + GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} + with: + url: https://git.patanix.de + tag_name: ${{ github.ref }} + release_name: Release ${{ github.ref }} + body: | + Dies ist ein automatisches Release von ${{ github.ref }}. + draft: false + prerelease: false + + - name: Download all workflow artifacts + uses: actions/download-artifact@v3 + with: + path: ./artifacts + + - name: Upload Release Asset (Linux) + uses: actions/upload-release-asset@v1 + env: + GITEA_TOKEN: ${{ secrets.GITEATOKEN }} + with: + url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./artifacts/workctl-linux/workctl-linux + asset_name: workctl-linux + asset_content_type: application/octet-stream + + - name: Upload Release Asset (macOS) + uses: actions/upload-release-asset@v1 + env: + GITEA_TOKEN: ${{ secrets.GITEATOKEN }}$ + with: + url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./artifacts/workctl-darwin/workctl-darwin + asset_name: workctl-darwin + asset_content_type: application/octet-stream + + - name: Upload Release Asset (Windows) + uses: actions/upload-release-asset@v1 + env: + GITEA_TOKEN: ${{ secrets.GITEATOKEN }}$ + with: + url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./artifacts/workctl-windows/workctl-windows.exe + asset_name: workctl-windows.exe + asset_content_type: application/octet-stream