Repository navigation
ci(deps): bump actions/setup-node from 4.4.0 to 6.4.0 #215
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| packages: read | |
| jobs: | |
| commitlint: | |
| name: Commitlint | |
| runs-on: ubuntu-latest | |
| if: "!startsWith(github.head_ref, 'release-please--')" | |
| permissions: | |
| contents: read | |
| pull-requests: read | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| with: | |
| fetch-depth: 0 | |
| - uses: wagoid/commitlint-github-action@b948419dd99f3fd78a6548d48f94e3df7f6bf3ed # v6.2.1 | |
| with: | |
| configFile: commitlint.config.cjs | |
| commitDepth: 1 | |
| release-please: | |
| name: Release Please | |
| runs-on: ubuntu-latest | |
| needs: [commitlint] | |
| if: | | |
| always() && | |
| github.event_name == 'push' && | |
| (needs.commitlint.result == 'success' || needs.commitlint.result == 'skipped') | |
| outputs: | |
| release_created: ${{ steps.release.outputs.release_created }} | |
| tag_name: ${{ steps.release.outputs.tag_name }} | |
| version: ${{ steps.release.outputs.version }} | |
| paths_released: ${{ steps.release.outputs.paths_released }} | |
| aidd_context_release_created: ${{ steps.release.outputs['plugins/aidd-context--release_created'] }} | |
| aidd_context_version: ${{ steps.release.outputs['plugins/aidd-context--version'] }} | |
| aidd_context_tag_name: ${{ steps.release.outputs['plugins/aidd-context--tag_name'] }} | |
| aidd_dev_release_created: ${{ steps.release.outputs['plugins/aidd-dev--release_created'] }} | |
| aidd_dev_version: ${{ steps.release.outputs['plugins/aidd-dev--version'] }} | |
| aidd_dev_tag_name: ${{ steps.release.outputs['plugins/aidd-dev--tag_name'] }} | |
| aidd_vcs_release_created: ${{ steps.release.outputs['plugins/aidd-vcs--release_created'] }} | |
| aidd_vcs_version: ${{ steps.release.outputs['plugins/aidd-vcs--version'] }} | |
| aidd_vcs_tag_name: ${{ steps.release.outputs['plugins/aidd-vcs--tag_name'] }} | |
| aidd_pm_release_created: ${{ steps.release.outputs['plugins/aidd-pm--release_created'] }} | |
| aidd_pm_version: ${{ steps.release.outputs['plugins/aidd-pm--version'] }} | |
| aidd_pm_tag_name: ${{ steps.release.outputs['plugins/aidd-pm--tag_name'] }} | |
| aidd_orchestrator_release_created: ${{ steps.release.outputs['plugins/aidd-orchestrator--release_created'] }} | |
| aidd_orchestrator_version: ${{ steps.release.outputs['plugins/aidd-orchestrator--version'] }} | |
| aidd_orchestrator_tag_name: ${{ steps.release.outputs['plugins/aidd-orchestrator--tag_name'] }} | |
| aidd_refine_release_created: ${{ steps.release.outputs['plugins/aidd-refine--release_created'] }} | |
| aidd_refine_version: ${{ steps.release.outputs['plugins/aidd-refine--version'] }} | |
| aidd_refine_tag_name: ${{ steps.release.outputs['plugins/aidd-refine--tag_name'] }} | |
| steps: | |
| - uses: googleapis/release-please-action@5c625bfb5d1ff62eadeeb3772007f7f66fdcf071 # v4.4.1 | |
| id: release | |
| with: | |
| config-file: release-please-config.json | |
| manifest-file: .release-please-manifest.json | |
| build-and-attach: | |
| name: Build and attach | |
| needs: [release-please] | |
| if: needs.release-please.outputs.release_created == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version: '20' | |
| - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 | |
| with: | |
| path: ~/.npm | |
| key: npm-global-${{ runner.os }}-${{ github.run_id }} | |
| restore-keys: | | |
| npm-global-${{ runner.os }}- | |
| - name: Install CLI | |
| # Use @beta during pre-release cycle; switch to @latest after stable v5 ships. | |
| run: | | |
| npm config set @ai-driven-dev:registry https://npm.pkg.github.com | |
| npm config set //npm.pkg.github.com/:_authToken ${{ secrets.PACKAGES_TOKEN }} | |
| npm install -g @ai-driven-dev/cli@beta | |
| - name: Build distributions | |
| run: bash scripts/build-dist.sh | |
| - name: Build source tarball | |
| run: | | |
| VERSION="${{ needs.release-please.outputs.version }}" | |
| tar czf "/tmp/aidd-framework-${VERSION}.tar.gz" \ | |
| plugins/ \ | |
| .claude-plugin/ \ | |
| aidd_docs/ | |
| - name: Build per-tool tarballs | |
| run: | | |
| VERSION="${{ needs.release-please.outputs.version }}" | |
| for tool in claude cursor copilot codex; do | |
| tar czf "/tmp/aidd-${tool}-${VERSION}.tar.gz" \ | |
| -C dist/${tool}-local \ | |
| --exclude='.aidd/cache' \ | |
| . | |
| tar czf "/tmp/aidd-${tool}-remote-${VERSION}.tar.gz" \ | |
| -C dist/${tool}-remote \ | |
| --exclude='.aidd/cache' \ | |
| . | |
| done | |
| - name: Attach tarballs to release | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| run: | | |
| VERSION="${{ needs.release-please.outputs.version }}" | |
| TAG="${{ needs.release-please.outputs.tag_name }}" | |
| gh release upload "${TAG}" \ | |
| "/tmp/aidd-framework-${VERSION}.tar.gz" \ | |
| "/tmp/aidd-claude-${VERSION}.tar.gz" \ | |
| "/tmp/aidd-claude-remote-${VERSION}.tar.gz" \ | |
| "/tmp/aidd-cursor-${VERSION}.tar.gz" \ | |
| "/tmp/aidd-cursor-remote-${VERSION}.tar.gz" \ | |
| "/tmp/aidd-copilot-${VERSION}.tar.gz" \ | |
| "/tmp/aidd-copilot-remote-${VERSION}.tar.gz" \ | |
| "/tmp/aidd-codex-${VERSION}.tar.gz" \ | |
| "/tmp/aidd-codex-remote-${VERSION}.tar.gz" \ | |
| --clobber | |
| build-plugin: | |
| name: Build and attach plugin | |
| needs: [release-please] | |
| if: needs.release-please.outputs.paths_released != '' && needs.release-please.outputs.paths_released != '[]' | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| plugin: [aidd-context, aidd-dev, aidd-vcs, aidd-pm, aidd-orchestrator, aidd-refine] | |
| steps: | |
| - name: Check if this plugin was released | |
| id: check | |
| run: | | |
| PATHS='${{ needs.release-please.outputs.paths_released }}' | |
| if echo "$PATHS" | jq -e --arg p "plugins/${{ matrix.plugin }}" 'map(. == $p) | any' > /dev/null 2>&1; then | |
| echo "released=true" >> $GITHUB_OUTPUT | |
| else | |
| echo "released=false" >> $GITHUB_OUTPUT | |
| fi | |
| - uses: actions/checkout@v4 | |
| if: steps.check.outputs.released == 'true' | |
| - name: Get plugin version | |
| id: version | |
| if: steps.check.outputs.released == 'true' | |
| run: | | |
| VERSION=$(jq -r '.version' "plugins/${{ matrix.plugin }}/.claude-plugin/plugin.json") | |
| echo "version=$VERSION" >> $GITHUB_OUTPUT | |
| - name: Build plugin tarball | |
| if: steps.check.outputs.released == 'true' | |
| run: | | |
| PLUGIN="${{ matrix.plugin }}" | |
| VERSION="${{ steps.version.outputs.version }}" | |
| tar czf "/tmp/${PLUGIN}-v${VERSION}.tar.gz" \ | |
| -C "plugins/${PLUGIN}" \ | |
| . | |
| - name: Attach plugin tarball to release | |
| if: steps.check.outputs.released == 'true' | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| run: | | |
| PLUGIN="${{ matrix.plugin }}" | |
| VERSION="${{ steps.version.outputs.version }}" | |
| TAG="${PLUGIN}-v${VERSION}" | |
| gh release upload "${TAG}" \ | |
| "/tmp/${PLUGIN}-v${VERSION}.tar.gz" \ | |
| --clobber |