name: Publish Package to GitHub Packages on: release: types: [published] workflow_dispatch: inputs: version: description: 'Version to publish (e.g., patch, minor, major, or specific version like 1.15.0)' required: true default: 'patch' permissions: contents: write packages: write jobs: publish: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v6 with: token: ${{ secrets.GITHUB_TOKEN }} - name: Setup Node.js uses: actions/setup-node@v6 with: node-version: '18' registry-url: 'https://npm.pkg.github.com' scope: '@davila7' - name: Configure package for GitHub Packages working-directory: ./cli-tool run: | # Update package.json for GitHub Packages npm pkg set name="@davila7/claude-code-templates" npm pkg set repository.type="git" npm pkg set repository.url="git+https://github.com/davila7/claude-code-templates.git" npm pkg set publishConfig.registry="https://npm.pkg.github.com" echo "Updated package.json for GitHub Packages:" cat package.json - name: Install dependencies working-directory: ./cli-tool run: npm ci --ignore-scripts - name: Run tests working-directory: ./cli-tool run: npm test - name: Get current version working-directory: ./cli-tool run: | # Use existing version from package.json (no bump) CURRENT_VERSION=$(node -p "require('./package.json').version") echo "NEW_VERSION=$CURRENT_VERSION" >> $GITHUB_ENV echo "Using version: $CURRENT_VERSION" - name: Publish to GitHub Packages working-directory: ./cli-tool run: npm publish env: NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Summary run: | echo "🎉 Package Published to GitHub Packages!" echo "========================================" echo "Package: @davila7/claude-code-templates" echo "Version: ${{ env.NEW_VERSION }}" echo "Registry: GitHub Packages" echo "" echo "Install with:" echo "npm install -g @davila7/claude-code-templates --registry=https://npm.pkg.github.com" echo "" echo "Note: This workflow only publishes to GitHub Packages." echo "Main npm registry publication is handled manually."