Refactor transaction logic for ease of use #668
This file contains 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 & Publish Package for PR | |
on: | |
pull_request: | |
branches: [develop] | |
jobs: | |
fork-check: | |
runs-on: ubuntu-latest | |
outputs: | |
is-not-fork: ${{ steps.check.outputs.is_not_fork }} | |
steps: | |
- id: check | |
run: echo "::set-output name=is_not_fork::${{ github.event.pull_request.head.repo.full_name == github.repository }}" | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
cache: npm | |
- run: npm ci | |
- run: npm run lint | |
- run: npm test | |
publish-beta: | |
needs: | |
- test | |
- fork-check | |
if: needs.fork-check.outputs.is-not-fork == 'true' | |
runs-on: ubuntu-latest | |
permissions: | |
packages: write | |
contents: read | |
pull-requests: write | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
cache: npm | |
registry-url: https://npm.pkg.github.com/ | |
- id: git-commit | |
run: echo "sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT | |
- run: npm ci | |
- run: npm run build:esm | |
- id: current-version | |
run: echo "version=$(npm pkg get version | tr -d '"')" >> $GITHUB_OUTPUT | |
- id: tag-version | |
run: npm version --no-git-tag-version $CURRENT_VERSION-$SHA | |
env: | |
SHA: ${{ steps.git-commit.outputs.sha }} | |
CURRENT_VERSION: ${{ steps.current-version.outputs.version }} | |
- id: publish | |
run: npm publish --tag pr | |
env: | |
NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}} | |
- id: published-version | |
run: echo "version=$(npm pkg get version | tr -d '"')" >> $GITHUB_OUTPUT | |
- run: echo published version $VERSION | |
env: | |
VERSION: ${{ steps.published-version.outputs.version }} | |
- name: Delete old bot comments | |
if: ${{ github.event_name == 'pull_request' }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
PR_ID: ${{ github.event.pull_request.number }} | |
REPO: ${{ github.repository }} | |
run: | | |
curl \ | |
-H "Accept: application/vnd.github.v3+json" \ | |
-H "Authorization: token $GITHUB_TOKEN" \ | |
https://api.github.com/repos/$REPO/issues/$PR_ID/comments \ | |
| jq ".[] | select(.user.login==\"github-actions[bot]\") | select(.body | match(\"npm i\")) | .id" \ | |
| xargs -I %q curl \ | |
-L \ | |
-X DELETE \ | |
-H "Accept: application/vnd.github.v3+json" \ | |
-H "Authorization: token $GITHUB_TOKEN"\ | |
https://api.github.com/repos/$REPO/issues/comments/%q | |
- name: Post test package PR comment | |
if: ${{ github.event_name == 'pull_request' }} | |
env: | |
VERSION: ${{ steps.published-version.outputs.version }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GITHUB_URL: ${{ github.event.pull_request.comments_url }} | |
run: | | |
curl \ | |
-X POST \ | |
-H "Accept: application/vnd.github.v3+json" \ | |
-H "Authorization: token $GITHUB_TOKEN" \ | |
$GITHUB_URL \ | |
-d "{\"body\":\"> Test this PR with \`npm i --save-exact @secretkeylabs/xverse-core@$VERSION\`\"}" |