Skip to content

Publish package

Publish package #21

name: Publish package
on:
release:
types: [created]
jobs:
publish-brew:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- run: yarn
- name: Pack tarball
run: npx oclif pack tarballs -t darwin-x64 --no-xz
- name: Set tarball vars
id: tarball
run: |
FILENAME=$(ls ./dist/*darwin-x64.tar.gz | head -1 | xargs -n 1 basename)
echo "filename=${FILENAME}" >> $GITHUB_OUTPUT
echo "download_url=https://github.com/knocklabs/knock-cli/releases/download/${GITHUB_REF_NAME}/${FILENAME}" >> $GITHUB_OUTPUT
- name: Upload tarball to the release
run: gh release upload ${GITHUB_REF_NAME} ./dist/${{ steps.tarball.outputs.filename }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Just to ensure the uploaded tarball is available.
- run: sleep 10s
- name: Update brew tap
uses: mislav/bump-homebrew-formula-action@v2
if: "!contains(github.ref, '-')" # skip prereleases
with:
homebrew-tap: knocklabs/homebrew-tap
formula-name: knock
download-url: ${{ steps.tarball.outputs.download_url }}
create-pullrequest: true
# IMPORTANT: PR title format needs to be exactly as below so it can be
# parsed predictively by the homebrew-tap repo.
commit-message: |
release: {{formulaName}} {{version}}
This PR is opened and managed automatically by Github Actions.
formula: {{formulaName}}
version: {{version}}
env:
COMMITTER_TOKEN: ${{ secrets.COMMITTER_TOKEN }}
publish-npm:
runs-on: ubuntu-latest
needs: [publish-brew]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
registry-url: "https://registry.npmjs.org"
scope: "@knocklabs"
- run: yarn
- run: yarn publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}