Skip to content

test ci

test ci #4

Workflow file for this run

name: Release PR
on:
pull_request:
branches: [main]
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
issues: write
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- name: NPM registry authentication
run: pnpm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}"
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- run: pnpm i
- name: Context vars
id: vars
run: |
echo "short_sha=$(git rev-parse --short ${{ github.event.pull_request.head.sha }})" >> $GITHUB_OUTPUT
- name: Find pr-release comment
uses: peter-evans/find-comment@v3
id: pr-fc
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: 'github-actions[bot]'
body-includes: <!--pr-release-->
- name: Create or update pr-release comment with in process status
uses: peter-evans/create-or-update-comment@v4
id: pr-couc
with:
comment-id: ${{ steps.pr-fc.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body: |
<!--pr-release-->
## PR-release for testing
Latest commit: `${{ steps.vars.outputs.short_sha }}`
Status: 👷 In process...
[View logs](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})
edit-mode: replace
- name: Publish packages
id: publish
continue-on-error: true
run: |
pnpm run changeset:version --snapshot unsafe-pr-${{ github.event.pull_request.number }}
pnpm run changeset:publish --tag unsafe-pr
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Update pr-release comment with failed status
if: steps.publish.outcome != 'success'
uses: peter-evans/create-or-update-comment@v4
with:
comment-id: ${{ steps.pr-couc.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body: |
<!--pr-release-->
## PR-release for testing
Latest commit: `${{ steps.vars.outputs.short_sha }}`
Status: ❌ Failed
[View logs](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})
edit-mode: replace
- name: Get @orpc/server version
if: steps.publish.outcome == 'success'
uses: martinbeentjes/npm-get-version-action@v1.3.1
id: orpc-server-version
with:
path: packages/server
- name: Get @orpc/contract version
if: steps.publish.outcome == 'success'
uses: martinbeentjes/npm-get-version-action@v1.3.1
id: orpc-contract-version
with:
path: packages/contract
- name: Get @orpc/client version
if: steps.publish.outcome == 'success'
uses: martinbeentjes/npm-get-version-action@v1.3.1
id: orpc-client-version
with:
path: packages/client
- name: Get @orpc/react version
if: steps.publish.outcome == 'success'
uses: martinbeentjes/npm-get-version-action@v1.3.1
id: orpc-react-version
with:
path: packages/react
- name: Get @orpc/openapi version
if: steps.publish.outcome == 'success'
uses: martinbeentjes/npm-get-version-action@v1.3.1
id: orpc-openapi-version
with:
path: packages/openapi
- name: Get @orpc/zod version
if: steps.publish.outcome == 'success'
uses: martinbeentjes/npm-get-version-action@v1.3.1
id: orpc-zod-version
with:
path: packages/zod
- name: Update pr-release comment with published status
if: steps.publish.outcome == 'success'
uses: peter-evans/create-or-update-comment@v4
with:
comment-id: ${{ steps.pr-couc.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body: |
<!--pr-release-->
## PR-release for testing
Latest commit: `${{ steps.vars.outputs.short_sha }}`
Status: ✅ Published
```bash
npm install @orpc/server@${{ steps.orpc-server-version.outputs.current-version}}
npm install @orpc/contract@${{ steps.orpc-contract-version.outputs.current-version}}
npm install @orpc/client@${{ steps.orpc-client-version.outputs.current-version}}
npm install @orpc/react@${{ steps.orpc-react-version.outputs.current-version}}
npm install @orpc/openapi@${{ steps.orpc-openapi-version.outputs.current-version}}
npm install @orpc/zod@${{ steps.orpc-zod-version.outputs.current-version}}
```
[View logs](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}/job/${{ github.job }})
edit-mode: replace
- name: Exit with failed status
if: steps.publish.outcome != 'success'
run: exit 1