From 2239a01be50433653baf562582a3f773e886b55f Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Fri, 6 Dec 2024 13:25:58 -0500 Subject: [PATCH] ci: Add GitHub Actions workflow for automated npm package release --- .github/workflows/cd.yml | 67 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .github/workflows/cd.yml diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml new file mode 100644 index 0000000..cddf148 --- /dev/null +++ b/.github/workflows/cd.yml @@ -0,0 +1,67 @@ +# This workflow will create a GitHub release every time a tag is pushed +name: Deploy @onsonr/es to npm + +on: + push: + branches: + - "master" + - "main" + +jobs: + release: + permissions: + contents: write + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Setup pnpm + uses: pnpm/action-setup@v2.2.4 + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: 18 + + - name: Get pnpm store directory + id: pnpm-cache + run: | + echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT + + - name: Setup pnpm cache + uses: actions/cache@v3 + with: + path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + + - name: Install deps (with cache) + run: pnpm install + + - name: Setup Git Config + run: | + bun install + git config user.name "Prad N." + git config user.email "prad@sonr.io" + + - name: Build + run: pnpm run build + + - name: "Automated Version Bump and Release" + run: | + git add . + git commit -m "chore: update build artifacts [skip ci]" || echo "No changes to commit" + pnpm version patch + git push + git push --tags + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - uses: JS-DevTools/npm-publish@v3 + with: + token: ${{ secrets.NPM_TOKEN }}