diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 97d9652..623b0e5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,6 +12,7 @@ on: jobs: create-release: runs-on: ubuntu-latest + environment: production permissions: contents: write outputs: @@ -85,6 +86,7 @@ jobs: needs: create-release if: ${{ !inputs.dry_run }} runs-on: ubuntu-latest + environment: production permissions: contents: write steps: @@ -115,6 +117,7 @@ jobs: needs: create-release if: ${{ !inputs.dry_run }} runs-on: ubuntu-latest + environment: production permissions: contents: write steps: @@ -136,3 +139,49 @@ jobs: git push origin "$major_version" --force echo "Updated $major_version tag to point to $next_version" + + release-base-action: + needs: create-release + if: ${{ !inputs.dry_run }} + runs-on: ubuntu-latest + environment: production + steps: + - name: Checkout base-action repo + uses: actions/checkout@v4 + with: + repository: anthropics/claude-code-base-action + token: ${{ secrets.CLAUDE_CODE_BASE_ACTION_PAT }} + fetch-depth: 0 + + - name: Create and push tag + run: | + next_version="${{ needs.create-release.outputs.next_version }}" + + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + + # Create the version tag + git tag -a "$next_version" -m "Release $next_version - synced from claude-code-action" + git push origin "$next_version" + + # Update the beta tag + git tag -fa beta -m "Update beta tag to ${next_version}" + git push origin beta --force + + - name: Create GitHub release + env: + GH_TOKEN: ${{ secrets.CLAUDE_CODE_BASE_ACTION_PAT }} + run: | + next_version="${{ needs.create-release.outputs.next_version }}" + + # Create the release + gh release create "$next_version" \ + --repo anthropics/claude-code-base-action \ + --title "$next_version" \ + --notes "Release $next_version - synced from anthropics/claude-code-action" \ + --latest=false + + # Update beta release to be latest + gh release edit beta \ + --repo anthropics/claude-code-base-action \ + --latest diff --git a/.github/workflows/sync-base-action.yml b/.github/workflows/sync-base-action.yml new file mode 100644 index 0000000..a2481b4 --- /dev/null +++ b/.github/workflows/sync-base-action.yml @@ -0,0 +1,92 @@ +name: Sync Base Action to claude-code-base-action + +on: + push: + branches: + - main + paths: + - "base-action/**" + workflow_dispatch: + +permissions: + contents: write + +jobs: + sync-base-action: + name: Sync base-action to claude-code-base-action repository + runs-on: ubuntu-latest + environment: production + timeout-minutes: 10 + steps: + - name: Checkout source repository + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + with: + fetch-depth: 1 + + - name: Setup SSH and clone target repository + run: | + # Configure SSH with deploy key + mkdir -p ~/.ssh + echo "${{ secrets.CLAUDE_CODE_BASE_ACTION_REPO_DEPLOY_KEY }}" > ~/.ssh/deploy_key_base + chmod 600 ~/.ssh/deploy_key_base + + # Configure SSH host + cat > ~/.ssh/config <> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "✅ Successfully synced \`base-action\` directory to [anthropics/claude-code-base-action](https://github.com/anthropics/claude-code-base-action)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "- **Source commit**: [\`${GITHUB_SHA:0:7}\`](https://github.com/anthropics/claude-code-action/commit/${GITHUB_SHA})" >> $GITHUB_STEP_SUMMARY + echo "- **Triggered by**: ${{ github.event_name }}" >> $GITHUB_STEP_SUMMARY + echo "- **Actor**: @${{ github.actor }}" >> $GITHUB_STEP_SUMMARY