name: Publish on: push: tags: - "v*" 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: 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 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: Install deps run: npm ci - name: Clean build artifacts run: rm -rf dist - name: Build plugin run: npm run build - name: Verify plugin run: npm run verify - name: Clean workspace for publish run: | rm -rf playground tests admin server node_modules .gitea .github - name: Publish run: npm publish env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}