name: Release on: push: branches: - master - main permissions: contents: write jobs: semantic-release: name: Sematic Release runs-on: self-hosted outputs: tmpFileName: ${{ steps.tempFileName.outputs.name }} steps: - name: Generate tempFile Name id: tempFileName run: | echo "name=$(openssl rand -hex 36)" >> "$GITHUB_OUTPUT" - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: Release run: | yarn install yarn semantic-release - name: Upload release artifact uses: actions/upload-artifact@v4 with: name: 'ReleaseArtifact' path: /tmp/${{ steps.tempFileName.outputs.name }} retention-days: 2 goreleaser: needs: semantic-release name: Goreleaser runs-on: self-hosted steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up Go uses: actions/setup-go@v5 with: go-version: '^1.25' - name: Install go release run: go install github.com/goreleaser/goreleaser/v2@latest - name: Download release artifact uses: actions/download-artifact@v5 with: name: 'ReleaseArtifact' path: /tmp/${{ needs.semantic-release.outputs.tmpFileName }} - name: Run Goreleaser env: GITEA_TOKEN: ${{ secrets.GORELEASER_TOKEN }} run: | goreleaser release --release-notes /tmp/${{ needs.semantic-release.outputs.tmpFileName }} --clean