- Changed the repository URL in package.json from SSH to HTTPS for better accessibility. - Updated the homepage URL in package.json to remove the #readme fragment. - Added a step in the GitHub Actions workflow to ensure that the tag matches the package version before publishing, enhancing version control integrity.
89 lines
2.5 KiB
YAML
89 lines
2.5 KiB
YAML
name: Publish
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- "v*"
|
|
|
|
permissions:
|
|
contents: read
|
|
id-token: write
|
|
|
|
jobs:
|
|
test:
|
|
name: Tests
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Setup Node
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 22
|
|
cache: "npm"
|
|
cache-dependency-path: |
|
|
package-lock.json
|
|
playground/package-lock.json
|
|
- name: Check tag matches package version
|
|
run: |
|
|
VERSION=$(node -p "require('./package.json').version")
|
|
TAG="${GITHUB_REF_NAME}"
|
|
if [ "v${VERSION}" != "${TAG}" ]; then
|
|
echo "Tag ${TAG} does not match package.json version v${VERSION}"
|
|
exit 1
|
|
fi
|
|
- name: Write playground .env
|
|
run: |
|
|
printf '%s' "${{ secrets.PLAYGROUND_ENV_BASE64 }}" | base64 -d > playground/.env
|
|
- name: Install root deps
|
|
run: npm ci
|
|
- name: Build plugin
|
|
run: npm run build
|
|
- name: Verify plugin
|
|
run: npm run verify
|
|
- name: Pack plugin into playground .yalc
|
|
run: |
|
|
TARBALL=$(npm pack --silent)
|
|
mkdir -p playground/.yalc/strapi-plugin-checkbox-list
|
|
tar -xzf "$TARBALL" -C playground/.yalc/strapi-plugin-checkbox-list --strip-components=1
|
|
- name: Install playground deps
|
|
working-directory: playground
|
|
run: npm install
|
|
- name: Build playground
|
|
working-directory: playground
|
|
run: npm run build
|
|
- name: Integration tests
|
|
working-directory: playground
|
|
run: npm run test:integration
|
|
|
|
publish:
|
|
name: Publish to NPM (Trusted Publisher)
|
|
runs-on: ubuntu-latest
|
|
needs: test
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Setup Node
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 22
|
|
registry-url: https://registry.npmjs.org/
|
|
cache: "npm"
|
|
cache-dependency-path: package-lock.json
|
|
- name: Check tag matches package version
|
|
run: |
|
|
VERSION=$(node -p "require('./package.json').version")
|
|
TAG="${GITHUB_REF_NAME}"
|
|
if [ "v${VERSION}" != "${TAG}" ]; then
|
|
echo "Tag ${TAG} does not match package.json version v${VERSION}"
|
|
exit 1
|
|
fi
|
|
- name: Install deps
|
|
run: npm ci
|
|
- name: Build plugin
|
|
run: npm run build
|
|
- name: Verify plugin
|
|
run: npm run verify
|
|
- name: Publish
|
|
run: npm publish
|