Skip to content

πŸ€– chore(deps): bump eslint from 9.32.0 to 9.33.0 #133

πŸ€– chore(deps): bump eslint from 9.32.0 to 9.33.0

πŸ€– chore(deps): bump eslint from 9.32.0 to 9.33.0 #133

Workflow file for this run

# Combined CI, Release, and Stage Sync Workflow
#
# This workflow automates the full CI/CD pipeline for the Cloudflare Worker monorepo using pnpm, git, and GitHub Actions.
#
# **Workflow Overview:**
#
# - **Triggers:**
# - Runs on push and pull_request events for main, stage, and all common feature/maintenance branch globs (feature/**, bugfix/**, fix/**, hotfix/**, release/**, dependabot/**, renovate/**, chore/**, test/**).
#
# - **Jobs:**
# 1. **test**: Runs setup, install, and tests (via composite action) for all pushes and PRs. This is the base job for all other jobs.
# 2. **release**: Runs only on push to main, after test passes. Publishes a release using semantic-release and pushes to npm if configured.
# 3. **sync-stage-with-main**: Runs only on push to main, after a successful release. Attempts to fast-forward stage to main; if not possible, creates a PR from main to stage for manual review.
#
# **Logic Branching:**
#
# - All pushes and PRs trigger the test job for all important branches.
# - The release job only runs if the event is a push to main and test passes.
# - The sync-stage-with-main job only runs if the event is a push to main and the release job succeeds.
# - If stage can be fast-forwarded to main, it does so and pushes.
# - If not, it creates a PR from main to stage for manual review and merge.
#
# **Key Features:**
# - DRY: All setup/test logic is in a composite action.
# - Safe: Stage promotion is fast-forward only or via PR, never force-pushed.
# - Robust: Handles all common branch types and automates the full CI/CD lifecycle.
# - Minimal Redundancy: Only one test run per event, and downstream jobs depend on its success.
#
# See README.md for more details on branch management and promotion helpers.
#
# ---
name: CI, Release, and Stage Sync
on:
workflow_dispatch:
push:
branches:
- main
- stage
- 'feature/**'
- 'bugfix/**'
- 'fix/**'
- 'hotfix/**'
- 'release/**'
- 'dependabot/**'
- 'renovate/**'
- 'chore/**'
- 'test/**'
pull_request:
types: [labeled, synchronize, opened, reopened, ready_for_review]
branches:
- main
- stage
- 'feature/**'
- 'bugfix/**'
- 'fix/**'
- 'hotfix/**'
- 'release/**'
- 'dependabot/**'
- 'renovate/**'
- 'chore/**'
- 'test/**'
concurrency:
group: ci-release-sync-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
name: Test & Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: ./.github/actions/setup-and-test
release:
name: Release (main only)
needs: test
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
runs-on: ubuntu-latest
concurrency:
group: release
cancel-in-progress: true
permissions:
contents: write
issues: write
pull-requests: write
id-token: write
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v4
with:
node-version: "lts/*"
- uses: pnpm/action-setup@v4
with:
version: latest
- name: Debug pnpm environment
run: |
echo "PATH: $PATH"
echo "NODE VERSION: $(node --version)"
echo "NPM VERSION: $(npm --version)"
echo "PNPM VERSION: $(pnpm --version)"
which pnpm
env | grep -E 'PNPM|NPM|NODE|PATH'
- run: pnpm install --frozen-lockfile
- run: pnpm semantic-release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SCOPE: ${{ secrets.scope }}
NODE_AUTH_TOKEN: ${{ secrets.VS_NPM_TOKEN }}
NPM_TOKEN: ${{ secrets.VS_NPM_TOKEN }}
HUSKY: 0
# sync-stage-with-main:
# name: Sync Stage with Main (after release)
# needs: release
# if: github.ref == 'refs/heads/main' && github.event_name == 'push'
# runs-on: ubuntu-latest
# permissions:
# contents: write
# pull-requests: write
# steps:
# - name: Checkout all branches
# uses: actions/checkout@v5
# with:
# fetch-depth: 0
# token: ${{ secrets.GITHUB_TOKEN }}
# - name: Set up Git user
# run: |
# git config user.name "github-actions[bot]"
# git config user.email "github-actions[bot]@users.noreply.github.com"
# - name: Fetch all branches
# run: |
# git fetch origin main
# git fetch origin stage
# - name: Check if stage can be fast-forwarded to main
# id: ffcheck
# run: |
# git checkout stage
# if git merge-base --is-ancestor stage main; then
# echo "can_ff=true" >> $GITHUB_OUTPUT
# else
# echo "can_ff=false" >> $GITHUB_OUTPUT
# fi
# - name: Fast-forward stage to main (if possible)
# if: steps.ffcheck.outputs.can_ff == 'true'
# run: |
# git checkout stage
# git merge --ff-only main
# git push origin stage
# - name: Create PR from main to stage (if fast-forward not possible)
# if: steps.ffcheck.outputs.can_ff == 'false'
# uses: repo-sync/pull-request@v2
# with:
# source_branch: main
# destination_branch: stage
# pr_title: "chore: sync stage with main after release"
# pr_body: "Automated PR to sync stage with main after a semantic-release bump."
# github_token: ${{ secrets.GITHUB_TOKEN }}