chore: bump version to 1.0.0 #23
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release | |
| on: | |
| push: | |
| tags: ['v*'] | |
| permissions: | |
| contents: write | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| - run: npm ci | |
| - run: npm run build | |
| - run: npm test | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: dist | |
| path: dist/ | |
| notify-monorepo: | |
| runs-on: ubuntu-latest | |
| needs: build | |
| steps: | |
| - name: Trigger integration tests in monorepo | |
| run: | | |
| gh api repos/devhelmhq/mono/dispatches \ | |
| -f event_type=surface_release \ | |
| -f "client_payload[repo]=${{ github.repository }}" \ | |
| -f "client_payload[tag]=${{ github.ref_name }}" \ | |
| -f "client_payload[sha]=${{ github.sha }}" | |
| env: | |
| GH_TOKEN: ${{ secrets.MONOREPO_DISPATCH_TOKEN }} | |
| publish: | |
| runs-on: ubuntu-latest | |
| needs: [build, notify-monorepo] | |
| environment: production | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| registry-url: https://registry.npmjs.org | |
| - run: npm ci | |
| - run: npm run build | |
| - run: npm publish --access public | |
| env: | |
| NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
| - name: Trigger publish verification in monorepo | |
| run: | | |
| gh api repos/devhelmhq/mono/dispatches \ | |
| -f event_type=surface_published \ | |
| -f "client_payload[repo]=${{ github.repository }}" \ | |
| -f "client_payload[tag]=${{ github.ref_name }}" \ | |
| -f "client_payload[sha]=${{ github.sha }}" | |
| env: | |
| GH_TOKEN: ${{ secrets.MONOREPO_DISPATCH_TOKEN }} | |
| github-release: | |
| runs-on: ubuntu-latest | |
| needs: publish | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Create GitHub Release | |
| run: | | |
| gh release create "${{ github.ref_name }}" \ | |
| --title "${{ github.ref_name }}" \ | |
| --generate-notes | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| post-publish: | |
| runs-on: ubuntu-latest | |
| needs: [publish, github-release] | |
| if: always() && needs.publish.result == 'success' | |
| steps: | |
| - name: Extract version info | |
| id: version | |
| run: | | |
| TAG="${{ github.ref_name }}" | |
| VERSION="${TAG#v}" | |
| echo "version=$VERSION" >> "$GITHUB_OUTPUT" | |
| IFS='.' read -r MAJOR MINOR PATCH <<< "$VERSION" | |
| if [[ "$MINOR" != "0" || "$MAJOR" != "0" ]] && [[ "$PATCH" == "0" ]]; then | |
| echo "is_minor_plus=true" >> "$GITHUB_OUTPUT" | |
| else | |
| echo "is_minor_plus=false" >> "$GITHUB_OUTPUT" | |
| fi | |
| - name: Create Linear release ticket | |
| if: env.LINEAR_API_KEY != '' | |
| run: | | |
| curl -s -X POST https://api.linear.app/graphql \ | |
| -H "Content-Type: application/json" \ | |
| -H "Authorization: ${{ secrets.LINEAR_API_KEY }}" \ | |
| -d '{ | |
| "query": "mutation($input: IssueCreateInput!) { issueCreate(input: $input) { success issue { identifier url } } }", | |
| "variables": { | |
| "input": { | |
| "teamId": "${{ vars.LINEAR_RELEASES_TEAM_ID }}", | |
| "projectId": "${{ vars.LINEAR_RELEASES_PROJECT_ID }}", | |
| "title": "Released: CLI v${{ steps.version.outputs.version }}", | |
| "description": "**Release:** https://github.com/${{ github.repository }}/releases/tag/${{ github.ref_name }}\n**CI run:** https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}\n**Commit:** ${{ github.sha }}" | |
| } | |
| } | |
| }' | |
| env: | |
| LINEAR_API_KEY: ${{ secrets.LINEAR_API_KEY }} | |
| - name: Create Linear changelog ticket (minor+ only) | |
| if: steps.version.outputs.is_minor_plus == 'true' && env.LINEAR_API_KEY != '' | |
| run: | | |
| curl -s -X POST https://api.linear.app/graphql \ | |
| -H "Content-Type: application/json" \ | |
| -H "Authorization: ${{ secrets.LINEAR_API_KEY }}" \ | |
| -d '{ | |
| "query": "mutation($input: IssueCreateInput!) { issueCreate(input: $input) { success issue { identifier url } } }", | |
| "variables": { | |
| "input": { | |
| "teamId": "${{ vars.LINEAR_CONTENT_TEAM_ID }}", | |
| "title": "Changelog entry: CLI v${{ steps.version.outputs.version }}", | |
| "description": "Write changelog entry for https://github.com/${{ github.repository }}/releases/tag/${{ github.ref_name }}" | |
| } | |
| } | |
| }' | |
| env: | |
| LINEAR_API_KEY: ${{ secrets.LINEAR_API_KEY }} |