name: Release (Changesets) on: push: branches: - master paths: - '.changeset/**' - 'packages/*/package.json' concurrency: ${{ github.workflow }}-${{ github.ref }} jobs: release: name: Release runs-on: ubuntu-latest permissions: contents: write pull-requests: write id-token: write steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: Install pnpm uses: pnpm/action-setup@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 20 registry-url: 'https://registry.npmjs.org' cache: 'pnpm' - name: Install dependencies run: pnpm install - name: Build framework packages run: | # Only build packages managed by Changesets (not in ignore list) pnpm --filter "@esengine/ecs-framework" build pnpm --filter "@esengine/ecs-framework-math" build pnpm --filter "@esengine/behavior-tree" build pnpm --filter "@esengine/blueprint" build pnpm --filter "@esengine/fsm" build pnpm --filter "@esengine/timer" build pnpm --filter "@esengine/spatial" build pnpm --filter "@esengine/procgen" build pnpm --filter "@esengine/pathfinding" build pnpm --filter "@esengine/network-protocols" build pnpm --filter "@esengine/network" build pnpm --filter "@esengine/cli" build - name: Create Release Pull Request or Publish id: changesets uses: changesets/action@v1 with: version: pnpm changeset:version publish: pnpm changeset:publish title: 'chore: release packages' commit: 'chore: release packages' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}