UNPKG

xrelease

Version:

xrelease (pronounced cross-release) helps you setup automated releases for your project for any language

64 lines (56 loc) 1.79 kB
# Go Release Workflow name: Release # Manual trigger on: workflow_dispatch: inputs: version_bump: description: 'Version bump type' required: true default: 'patch' type: choice options: - patch - minor - major jobs: release: runs-on: ubuntu-latest permissions: contents: write # Required for creating releases and tags pull-requests: write # Required if you want to create PRs steps: - uses: actions/checkout@v4 with: fetch-depth: 0 # Important for correct version calculation - name: Setup Go uses: actions/setup-go@v5 with: go-version: '1.22' check-latest: true - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '22' - name: Configure Git run: | git config --global user.name 'github-actions[bot]' git config --global user.email 'github-actions[bot]@users.noreply.github.com' # xrelease will: # 1. Update version in package.json (source of truth) # 2. Update go.mod version based on major version # 3. Generate/update CHANGELOG.md # 4. Commit these changes with message "chore(release): x.y.z" # 5. Create and push git tag vx.y.z # 6. Create GitHub release from the changelog - name: Create Release run: npx -y xrelease create --bump ${{ inputs.version_bump }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Update Go dependencies after version change - name: Update Go Module run: | go mod tidy git add go.mod go.sum git commit -m "chore: update go.mod after release" || true git push