Skip to content

Bump actions/setup-node from 4 to 6 (#34) #7

Bump actions/setup-node from 4 to 6 (#34)

Bump actions/setup-node from 4 to 6 (#34) #7

Workflow file for this run

name: Release
on:
push:
branches: [main]
concurrency: ${{ github.workflow }}-${{ github.ref }}
jobs:
release:
name: Release
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
id-token: write
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: "20"
registry-url: "https://registry.npmjs.org"
- uses: pnpm/action-setup@v4
- name: Install dependencies
run: pnpm install
- name: Check Lint
run: pnpm lint
- name: Build everything
run: pnpm build
- name: Run Worker Tests
run: cd packages/worker && pnpm test
- name: Get current version
id: pre
run: echo "version=$(jq -r .version packages/worker/package.json)" >> "$GITHUB_OUTPUT"
- name: Check if version is already published
id: check
run: |
VERSION="${{ steps.pre.outputs.version }}"
if npm view "email-explorer@${VERSION}" version >/dev/null 2>&1; then
echo "published=true" >> "$GITHUB_OUTPUT"
else
echo "published=false" >> "$GITHUB_OUTPUT"
fi
- name: Create Release Pull Request or Publish
id: changesets
uses: changesets/action@v1
with:
publish: ${{ steps.check.outputs.published == 'false' && 'cd packages/worker && npm publish --provenance --access public' || 'echo Already published, skipping' }}
version: pnpm changeset version
title: "chore: version packages"
commit: "chore: version packages"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create GitHub Release
if: steps.changesets.outputs.published == 'true'
run: |
VERSION=$(jq -r .version packages/worker/package.json)
TAG="v${VERSION}"
if gh release view "$TAG" >/dev/null 2>&1; then
echo "Release $TAG already exists, skipping."
else
CHANGELOG_FILE="packages/worker/CHANGELOG.md"
BODY=""
if [ -f "$CHANGELOG_FILE" ]; then
BODY=$(awk "/^## ${VERSION}\$/{ found=1; next } /^## /{ if(found) exit } found" "$CHANGELOG_FILE")
fi
if [ -z "$BODY" ]; then
BODY="See [CHANGELOG.md](https://github.com/G4brym/email-explorer/blob/main/packages/worker/CHANGELOG.md) for details."
fi
NOTES_FILE=$(mktemp)
echo "$BODY" > "$NOTES_FILE"
gh release create "$TAG" \
--title "$TAG" \
--notes-file "$NOTES_FILE" \
--latest
rm -f "$NOTES_FILE"
echo "Created release $TAG"
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}