feat(emmett-event-store-kysely): snapshot projection v2 #88
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: Quality Assurance & Release | |
| on: | |
| push: | |
| branches: [main] | |
| paths-ignore: ['example/**', '.husky/**', '.github/**', '.vscode/**'] | |
| pull_request: | |
| branches: [main] | |
| paths-ignore: ['example/**', '.husky/**', '.github/**', '.vscode/**'] | |
| workflow_dispatch: # Allow manual triggering | |
| jobs: | |
| quality: | |
| name: Quality Checks - ${{ matrix.package }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| package: | |
| - emmett-event-store-kysely | |
| - emmett-crypto-shredding | |
| - emmett-crypto-shredding-kysely | |
| defaults: | |
| run: | |
| working-directory: ./packages/${{ matrix.package }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| cache-dependency-path: './packages/${{ matrix.package }}/package-lock.json' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Run tests | |
| run: npm test | |
| - name: Build package | |
| run: npm run build | |
| - name: Upload build artifacts - ${{ matrix.package }} | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ matrix.package }}-dist | |
| path: | | |
| ./packages/${{ matrix.package }}/dist | |
| ./packages/${{ matrix.package }}/package.json | |
| ./packages/${{ matrix.package }}/README.md | |
| if-no-files-found: error | |
| release: | |
| name: Release - ${{ matrix.package }} | |
| runs-on: ubuntu-latest | |
| needs: quality | |
| if: github.ref == 'refs/heads/main' | |
| strategy: | |
| matrix: | |
| package: | |
| - emmett-event-store-kysely | |
| - emmett-crypto-shredding | |
| - emmett-crypto-shredding-kysely | |
| permissions: | |
| contents: write | |
| issues: write | |
| pull-requests: write | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: main | |
| fetch-depth: 0 | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| registry-url: 'https://registry.npmjs.org' | |
| - name: Cache dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| node_modules | |
| packages/*/node_modules | |
| key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-node- | |
| - name: Install root dependencies | |
| run: npm ci | |
| - name: Configure Git | |
| run: | | |
| git config --global user.name "github-actions[bot]" | |
| git config --global user.email "github-actions[bot]@users.noreply.github.com" | |
| - name: Fetch tags and refs | |
| run: | | |
| git fetch origin --tags --force | |
| git checkout -B main origin/main || git checkout main | |
| git reset --hard origin/main | |
| - name: Download build artifacts - ${{ matrix.package }} | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: ${{ matrix.package }}-dist | |
| path: ./packages/${{ matrix.package }} | |
| - name: Release | |
| working-directory: ./packages/${{ matrix.package }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
| run: npx semantic-release |