name: Release Builds on: push: tags: - 'v*' jobs: build: name: GoReleaser build runs-on: ubuntu-22.04 steps: - name: Check out code into the Go module directory uses: actions/checkout@v2 with: fetch-depth: 0 - name: Set up Go 1.24 uses: actions/setup-go@v2 with: go-version: 1.24 id: go - name: Unset GITHUB_TOKEN (if present) run: unset GITHUB_TOKEN - name: Run GoReleaser uses: goreleaser/goreleaser-action@master with: version: latest args: release --clean env: GITEA_TOKEN: ${{ secrets.GITEATOKEN }} # jobs: # build: # runs-on: ubuntu-22.04 # strategy: # matrix: # os: [ubuntu-latest, macos-latest, windows-latest] # goos: [linux, darwin, windows] # exclude: # - os: ubuntu-latest # goos: darwin # - os: ubuntu-latest # goos: windows # - os: macos-latest # goos: linux # - os: macos-latest # goos: windows # - os: windows-latest # goos: linux # - os: windows-latest # goos: darwin # steps: # - name: Check out repository # uses: actions/checkout@v4 # - name: Set up Go # uses: actions/setup-go@v5 # with: # go-version: '1.24' # - name: Get dependencies # run: go mod tidy # - name: Build for ${{ matrix.goos }} # run: | # 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 }}${{ matrix.goos == 'windows' && '.exe' || '' }} # retention-days: 7 # create_release: # needs: build # runs-on: ubuntu-22.04 # 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.GITEATOKEN }} # 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@v4 # env: # GITEA_TOKEN: ${{ secrets.GITEATOKEN }} # with: # name: workctl-linux # path: ./artifacts/workctl-linux/workctl-linux # upload_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: # upload_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: # upload_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