name: publish on: workflow_dispatch: inputs: ci_status: description: 'required CI status' default: 'success' required: true prerelease: description: 'prerelease name' required: false jobs: publish: runs-on: ubuntu-latest env: PublishBranch: publish/${{github.ref_name }}-${{ github.run_id }}-${{ github.run_number }} steps: - name: 'check successful status' run: | REF_STATUS=$(curl -s \ 'https://api.github.com/repos/${{ github.repository }}/commits/${{ github.ref }}/status' \ | jq .state) [[ "${REF_STATUS}" == '"${{ github.event.inputs.ci_status }}"' ]] || \ (echo "::error ::${{ github.ref }} does not have a successful CI status" && false) - name: Add foundry uses: foundry-rs/foundry-toolchain@v1 with: version: nightly - uses: actions/checkout@v2 with: ref: ${{ github.ref }} fetch-depth: 0 - uses: actions/setup-node@v1 with: node-version: 16 - uses: actions/setup-python@v2 - name: 'configure git' run: | git config --global user.email "github-actions@github.com" git config --global user.name "Github Actions" - name: 'Checkout new branch' run: | git checkout -b $PublishBranch git push -u origin $PublishBranch - name: 'install dependencies' run: | yarn -D - name: 'build and publish' run: | echo '//registry.npmjs.org/:_authToken=${NPM_TOKEN}' > .npmrc npm run run:publish:gha env: NPM_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }} GITHUB_TOKEN: ${{ github.token }} PUBLISH_PRERELEASE: ${{ github.event.inputs.prerelease }} - name: 'Create PR to merge into ref branch' run: | gh pr create \ -B ${{ github.ref_name }} \ -H $PublishBranch \ --title "Publish: CHANGELOG and Package Version Updates into ${{ github.ref_name }}" \ --body "Syncing CHANGELOG and package version updates from publish action ${{github.run_id}}-${{github.run_number}} into ${{ github.ref_name}} branch" \ --reviewer ${{ github.actor }} env: GITHUB_TOKEN: ${{ github.token }} - name: 'Create PR to merge ref branch into main' run: | gh pr create \ -B main \ -H ${{ github.ref_name }} \ --title "Publish: Sync ${{ github.ref_name }} into main " \ --body "Syncing ${{ github.ref_name }} back into main after publish action. NOTE: this PR should be merged after CHANGELOG and package version updates have been merged into ${{ github.ref_name }}" \ --reviewer ${{ github.actor }} env: GITHUB_TOKEN: ${{ github.token }}