Skip to content

update scaffold documentation and release pipeline #205

update scaffold documentation and release pipeline

update scaffold documentation and release pipeline #205

Workflow file for this run

name: Release
on:
push:
branches:
- develop
paths:
- "packages/**"
- ".changeset/**"
permissions: {}
jobs:
release:
# prevents this action from running on forks
if: github.repository == 'bluecadet/launchpad'
permissions:
contents: write # to create release (changesets/action)
id-token: write # OpenID Connect token needed for provenance
pull-requests: write # to create pull request (changesets/action)
name: Release
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
# This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits
fetch-depth: 0
# custom token so that the changesets stuff still works with our branch protections
token: ${{ secrets.BC_GITHUB_TOKEN }}
- uses: actions/setup-node@v4
with:
node-version-file: 'package.json'
cache: 'npm'
- name: Install Dependencies
run: npm ci
- name: Create Release Pull Request or Publish to npm
id: changesets
uses: changesets/action@v1
with:
publish: npm run release
env:
GITHUB_TOKEN: ${{ secrets.BC_GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Add scaffold zip to release
if: steps.changesets.outputs.published == 'true' && contains(steps.changesets.outputs.publishedPackages, '@@bluecadet/launchpad-scaffold')
run: |
# Extract the version of scaffold from publishedPackages
SCAFFOLD_VERSION=$(echo '${{ steps.changesets.outputs.publishedPackages }}' | jq -r '.[] | select(.name == "@bluecadet/launchpad-scaffold") | .version')
# Create zip file with specific files and directories
cd packages/scaffold
zip -r "../../launchpad-scaffold-standalone.zip" \
setup.bat \
setup.ps1 \
scripts/ \
config/
cd ../..
# Upload the zip to the @bluecadet/launchpad-scaffold release
gh release upload "@bluecadet/launchpad-scaffold@${SCAFFOLD_VERSION}" "launchpad-scaffold-standalone.zip"
# Also upload to @bluecadet/launchpad release if it was published
if echo '${{ steps.changesets.outputs.publishedPackages }}' | jq -e '.[] | select(.name == "@bluecadet/launchpad")' > /dev/null; then
LAUNCHPAD_VERSION=$(echo '${{ steps.changesets.outputs.publishedPackages }}' | jq -r '.[] | select(.name == "@bluecadet/launchpad") | .version')
gh release upload "@bluecadet/launchpad@${LAUNCHPAD_VERSION}" "launchpad-scaffold-standalone.zip"
fi
env:
GITHUB_TOKEN: ${{ secrets.BC_GITHUB_TOKEN }}