diff --git a/.github/workflows/release_and_publish.yml b/.github/workflows/release_and_publish.yml new file mode 100644 index 0000000..a3a5849 --- /dev/null +++ b/.github/workflows/release_and_publish.yml @@ -0,0 +1,41 @@ +name: Release and publish + +on: + push: + tags: + - "v*" + +jobs: + release_and_publish: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: "20" + registry-url: "https://registry.npmjs.org/" + + - name: Install project dependencies + run: npm clean-install + + - name: Build the dist folder + run: npm run build + + - name: Create GitHub Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: ${{ github.ref }} + draft: false + prerelease: false + + - name: Publish to npm + run: npm publish + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/README.md b/README.md index 301d213..7fd07b6 100644 --- a/README.md +++ b/README.md @@ -37,3 +37,12 @@ which will create a `.tgz` file that can then be installed by the external appli ``` npm install /path/to/package-x.y.z.tgz ``` + +### Publishing a new version + +To make a new version and publish to npm via GitHub Actions: + +```bash +npm version +git push --follow-tags +```