Running CI/CD for event push (Triggered by user SmashingQuasar) #360
Workflow file for this run
This file contains 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: Continuous Integration and Deployment | |
run-name: Running CI/CD for event ${{github.event_name}} (Triggered by user ${{ github.triggering_actor }}) | |
on: | |
push: | |
jobs: | |
setup: | |
runs-on: ubuntu-latest | |
outputs: | |
ts-files-changed: ${{ steps.parse-changed-files.outputs.ts-files-changed }} | |
require-spell-check: ${{ steps.parse-changed-files.outputs.require-spell-check }} | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Parse changed files | |
id: parse-changed-files | |
run: | | |
echo "ts-files-changed=$((git diff --name-status ${{ github.event.before }} ${{ github.event.after }} | grep -oP '[M]{1}[^A-Za-z]*(.*)' | sed --regexp-extended 's/[AMD]\s+//g' | grep -oP '.*\.ts$') 1> /dev/null && echo true || echo false)" >> $GITHUB_OUTPUT | |
echo "require-spell-check=$(./_ops/continuous-integration/scripts/requires_spell_check.sh ${{ github.event.before }} ${{ github.event.after }})" >> $GITHUB_OUTPUT | |
- name: Debug | |
run: | | |
echo ${{ steps.parse-changed-files.outputs.ts-files-changed }} | |
echo ${{ steps.parse-changed-files.outputs.require-spell-check }} | |
- name: PNPM installation | |
# if: ${{ steps.parse-changed-files.outputs.ts-files-changed == 'true' || steps.parse-changed-files.outputs.require-spell-check == 'true' }} | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Get pnpm store directory | |
# if: ${{ steps.parse-changed-files.outputs.ts-files-changed == 'true' || steps.parse-changed-files.outputs.require-spell-check == 'true' }} | |
id: pnpm-cache | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT | |
- name: PNPM cache configuration | |
# if: ${{ steps.parse-changed-files.outputs.ts-files-changed == 'true' || steps.parse-changed-files.outputs.require-spell-check == 'true' }} | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Install dependencies | |
# if: ${{ steps.parse-changed-files.outputs.ts-files-changed == 'true' || steps.parse-changed-files.outputs.require-spell-check == 'true' }} | |
run: | | |
pnpm install --frozen-lockfile | |
cd packages/mockingbird && pnpm install --frozen-lockfile && cd ../.. | |
- name: Dependencies caching | |
# if: ${{ steps.parse-changed-files.outputs.ts-files-changed == 'true' || steps.parse-changed-files.outputs.require-spell-check == 'true' }} | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
spell-check-global: | |
needs: setup | |
runs-on: ubuntu-latest | |
# if: ${{ needs.setup.outputs.require-spell-check == 'true' }} | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Check spelling with CSpell | |
run: pnpm --filter ts-predicate ci:spell:check | |
## TS Predicate | |
lint-ts-predicate: | |
needs: setup | |
runs-on: ubuntu-latest | |
# if: ${{ needs.setup.outputs.ts-files-changed == 'true' }} | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: pnpm --filter testing-ground ci:build | |
- name: Lint with ESlint | |
run: pnpm --filter ts-predicate ci:lint | |
typescript-syntax-check-ts-predicate: | |
needs: setup | |
runs-on: ubuntu-latest | |
# if: ${{ needs.setup.outputs.ts-files-changed == 'true' }} | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: pnpm --filter testing-ground ci:build | |
- name: Check TypeScript syntax | |
run: pnpm --filter ts-predicate ci:ts:check | |
test-ts-predicate: | |
needs: setup | |
runs-on: ubuntu-latest | |
# if: ${{ needs.setup.outputs.ts-files-changed == 'true' }} | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: pnpm --filter testing-ground ci:build | |
- name: Test with Node Test runner | |
run: pnpm --filter ts-predicate ci:test:unit | |
- name: Upload reports as artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: reports | |
path: | | |
reports/* | |
publish-ts-predicate: | |
if: ${{ github.ref == 'refs/heads/main' && ! failure() && ! cancelled() && github.event_name == 'push' }} | |
needs: | |
[ | |
spell-check-global, | |
lint-ts-predicate, | |
typescript-syntax-check-ts-predicate, | |
test-ts-predicate, | |
] | |
runs-on: ubuntu-latest | |
environment: npm | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: "18.x" | |
registry-url: "https://registry.npmjs.org" | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: pnpm --filter testing-ground ci:build | |
- name: Package build | |
run: pnpm --filter ts-predicate ci:build | |
- name: Publish package | |
id: package-version | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
run: pnpm --filter ts-predicate ci:publish | |
## Toolbox | |
lint-toolbox: | |
needs: setup | |
runs-on: ubuntu-latest | |
# if: ${{ needs.setup.outputs.ts-files-changed == 'true' }} | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: pnpm --filter ts-predicate ci:build | |
- name: Package dependencies installation | |
run: pnpm install --filter toolbox | |
- name: Lint with ESlint | |
run: pnpm --filter toolbox ci:lint | |
typescript-syntax-check-toolbox: | |
needs: setup | |
runs-on: ubuntu-latest | |
# if: ${{ needs.setup.outputs.ts-files-changed == 'true' }} | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: pnpm --filter ts-predicate ci:build | |
- name: Package dependencies installation | |
run: pnpm install --filter toolbox | |
- name: Check TypeScript syntax | |
run: pnpm --filter toolbox ci:ts:check | |
test-toolbox: | |
needs: setup | |
runs-on: ubuntu-latest | |
# if: ${{ needs.setup.outputs.ts-files-changed == 'true' }} | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: pnpm --filter ts-predicate ci:build | |
- name: Package dependencies installation | |
run: pnpm install --filter toolbox | |
- name: Test with Node Test runner | |
run: pnpm --filter toolbox ci:test:unit | |
- name: Upload reports as artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: reports | |
path: | | |
reports/* | |
publish-toolbox: | |
if: ${{ github.ref == 'refs/heads/main' && ! failure() && ! cancelled() && github.event_name == 'push' }} | |
needs: | |
[ | |
spell-check-global, | |
lint-toolbox, | |
typescript-syntax-check-toolbox, | |
test-toolbox, | |
] | |
runs-on: ubuntu-latest | |
environment: npm | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: "18.x" | |
registry-url: "https://registry.npmjs.org" | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: pnpm --filter ts-predicate ci:build | |
- name: Package dependencies installation | |
run: pnpm install --filter toolbox | |
- name: Package build | |
run: pnpm --filter toolbox ci:build | |
- name: Publish package | |
id: package-version | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
run: pnpm --filter toolbox ci:publish | |
## AWS Signature v4 | |
lint-aws-signature-v4: | |
needs: setup | |
runs-on: ubuntu-latest | |
# if: ${{ needs.setup.outputs.ts-files-changed == 'true' }} | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: pnpm --filter testing-ground ci:build | |
- name: Lint with ESlint | |
run: pnpm --filter aws-signature-v4 ci:lint | |
typescript-syntax-check-aws-signature-v4: | |
needs: setup | |
runs-on: ubuntu-latest | |
# if: ${{ needs.setup.outputs.ts-files-changed == 'true' }} | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: pnpm --filter testing-ground ci:build | |
- name: Check TypeScript syntax | |
run: pnpm --filter aws-signature-v4 ci:ts:check | |
test-aws-signature-v4: | |
needs: setup | |
runs-on: ubuntu-latest | |
# if: ${{ needs.setup.outputs.ts-files-changed == 'true' }} | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: pnpm --filter testing-ground ci:build | |
- name: Test with Node Test runner | |
run: pnpm --filter aws-signature-v4 ci:test:unit | |
- name: Upload reports as artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: reports | |
path: | | |
reports/* | |
publish-aws-signature-v4: | |
if: ${{ github.ref == 'refs/heads/main' && ! failure() && ! cancelled() && github.event_name == 'push' }} | |
needs: | |
[ | |
spell-check-global, | |
lint-aws-signature-v4, | |
typescript-syntax-check-aws-signature-v4, | |
test-aws-signature-v4, | |
] | |
runs-on: ubuntu-latest | |
environment: npm | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: "18.x" | |
registry-url: "https://registry.npmjs.org" | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: pnpm --filter testing-ground ci:build | |
- name: Package build | |
run: pnpm --filter aws-signature-v4 ci:build | |
- name: Publish package | |
id: package-version | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
run: pnpm --filter aws-signature-v4 ci:publish | |
## AWS S3 | |
lint-aws-s3: | |
needs: setup | |
runs-on: ubuntu-latest | |
# if: ${{ needs.setup.outputs.ts-files-changed == 'true' }} | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: | | |
pnpm --filter aws-signature-v4 ci:build | |
- name: Package dependencies installation | |
run: pnpm install --filter aws-s3 | |
- name: Lint with ESlint | |
run: pnpm --filter aws-s3 ci:lint | |
typescript-syntax-check-aws-s3: | |
needs: setup | |
runs-on: ubuntu-latest | |
# if: ${{ needs.setup.outputs.ts-files-changed == 'true' }} | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: | | |
pnpm --filter aws-signature-v4 ci:build | |
- name: Package dependencies installation | |
run: pnpm install --filter aws-s3 | |
- name: Check TypeScript syntax | |
run: pnpm --filter aws-s3 ci:ts:check | |
test-aws-s3: | |
needs: setup | |
runs-on: ubuntu-latest | |
# if: ${{ needs.setup.outputs.ts-files-changed == 'true' }} | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: | | |
pnpm --filter aws-signature-v4 ci:build | |
- name: Package dependencies installation | |
run: pnpm install --filter aws-s3 | |
- name: Test with Node Test runner | |
run: pnpm --filter aws-s3 ci:test:unit | |
- name: Upload reports as artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: reports | |
path: | | |
reports/* | |
publish-aws-s3: | |
if: ${{ github.ref == 'refs/heads/main' && ! failure() && ! cancelled() && github.event_name == 'push' }} | |
needs: | |
[ | |
spell-check-global, | |
lint-aws-s3, | |
typescript-syntax-check-aws-s3, | |
test-aws-s3, | |
] | |
runs-on: ubuntu-latest | |
environment: npm | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: "18.x" | |
registry-url: "https://registry.npmjs.org" | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: | | |
pnpm --filter aws-signature-v4 ci:build | |
- name: Package dependencies installation | |
run: pnpm install --filter aws-s3 | |
- name: Package build | |
run: pnpm --filter aws-s3 ci:build | |
- name: Publish package | |
id: package-version | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
run: pnpm --filter aws-s3 ci:publish | |
## AWS SQS | |
lint-aws-sqs: | |
needs: setup | |
runs-on: ubuntu-latest | |
# if: ${{ needs.setup.outputs.ts-files-changed == 'true' }} | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: | | |
pnpm --filter aws-signature-v4 ci:build | |
pnpm --filter ts-predicate ci:build | |
- name: Package dependencies installation | |
run: pnpm install --filter aws-sqs | |
- name: Lint with ESlint | |
run: pnpm --filter aws-sqs ci:lint | |
typescript-syntax-check-aws-sqs: | |
needs: setup | |
runs-on: ubuntu-latest | |
# if: ${{ needs.setup.outputs.ts-files-changed == 'true' }} | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: | | |
pnpm --filter aws-signature-v4 ci:build | |
pnpm --filter ts-predicate ci:build | |
- name: Package dependencies installation | |
run: pnpm install --filter aws-sqs | |
- name: Check TypeScript syntax | |
run: pnpm --filter aws-sqs ci:ts:check | |
test-aws-sqs: | |
needs: setup | |
runs-on: ubuntu-latest | |
# if: ${{ needs.setup.outputs.ts-files-changed == 'true' }} | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: | | |
pnpm --filter aws-signature-v4 ci:build | |
pnpm --filter ts-predicate ci:build | |
- name: Package dependencies installation | |
run: pnpm install --filter aws-sqs | |
- name: Test with Node Test runner | |
run: pnpm --filter aws-sqs ci:test:unit | |
- name: Upload reports as artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: reports | |
path: | | |
reports/* | |
publish-aws-sqs: | |
if: ${{ github.ref == 'refs/heads/main' && ! failure() && ! cancelled() && github.event_name == 'push' }} | |
needs: | |
[ | |
spell-check-global, | |
lint-aws-sqs, | |
typescript-syntax-check-aws-sqs, | |
test-aws-sqs, | |
] | |
runs-on: ubuntu-latest | |
environment: npm | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: "18.x" | |
registry-url: "https://registry.npmjs.org" | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: | | |
pnpm --filter aws-signature-v4 ci:build | |
pnpm --filter ts-predicate ci:build | |
- name: Package dependencies installation | |
run: pnpm install --filter aws-sqs | |
- name: Package build | |
run: pnpm --filter aws-sqs ci:build | |
- name: Publish package | |
id: package-version | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
run: pnpm --filter aws-sqs ci:publish | |
## Mockingbird | |
lint-mockingbird: | |
needs: setup | |
runs-on: ubuntu-latest | |
# if: ${{ needs.setup.outputs.ts-files-changed == 'true' }} | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: | | |
pnpm --filter testing-ground ci:build | |
pnpm --filter ts-predicate ci:build | |
- name: Package dependencies installation | |
run: pnpm install --filter mockingbird | |
- name: Lint with ESlint | |
run: pnpm --filter mockingbird ci:lint | |
typescript-syntax-check-mockingbird: | |
needs: setup | |
runs-on: ubuntu-latest | |
# if: ${{ needs.setup.outputs.ts-files-changed == 'true' }} | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: | | |
pnpm --filter testing-ground ci:build | |
pnpm --filter ts-predicate ci:build | |
- name: Package dependencies installation | |
run: pnpm install --filter mockingbird | |
- name: Check TypeScript syntax | |
run: pnpm --filter mockingbird ci:ts:check | |
publish-mockingbird: | |
if: ${{ github.ref == 'refs/heads/main' && ! failure() && ! cancelled() && github.event_name == 'push' }} | |
needs: | |
[ | |
spell-check-global, | |
lint-mockingbird, | |
typescript-syntax-check-mockingbird, | |
] | |
runs-on: ubuntu-latest | |
environment: npm | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: "18.x" | |
registry-url: "https://registry.npmjs.org" | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: | | |
pnpm --filter testing-ground ci:build | |
pnpm --filter ts-predicate ci:build | |
- name: Package dependencies installation | |
run: pnpm install --filter mockingbird | |
- name: Package build | |
run: pnpm --filter mockingbird ci:build | |
- name: Publish package | |
id: package-version | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
run: pnpm --filter mockingbird ci:publish | |
## Architectura | |
lint-architectura: | |
needs: setup | |
runs-on: ubuntu-latest | |
# if: ${{ needs.setup.outputs.ts-files-changed == 'true' }} | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: | | |
pnpm --filter ts-predicate ci:build | |
pnpm --filter testing-ground ci:build | |
- name: Package dependencies installation | |
run: pnpm install --filter architectura | |
- name: Lint with ESlint | |
run: pnpm --filter architectura ci:lint | |
typescript-syntax-check-architectura: | |
needs: setup | |
runs-on: ubuntu-latest | |
# if: ${{ needs.setup.outputs.ts-files-changed == 'true' }} | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: | | |
pnpm --filter ts-predicate ci:build | |
pnpm --filter testing-ground ci:build | |
- name: Package dependencies installation | |
run: pnpm install --filter architectura | |
- name: Check TypeScript syntax | |
run: pnpm --filter architectura ci:ts:check | |
test-architectura: | |
needs: setup | |
runs-on: ubuntu-latest | |
# if: ${{ needs.setup.outputs.ts-files-changed == 'true' }} | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: | | |
pnpm --filter ts-predicate ci:build | |
pnpm --filter testing-ground ci:build | |
- name: Package dependencies installation | |
run: pnpm install --filter architectura | |
- name: Test with Node Test runner | |
run: pnpm --filter architectura ci:test:unit | |
- name: Upload reports as artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: reports | |
path: | | |
reports/* | |
publish-architectura: | |
if: ${{ github.ref == 'refs/heads/main' && ! failure() && ! cancelled() && github.event_name == 'push' }} | |
needs: | |
[ | |
spell-check-global, | |
lint-architectura, | |
typescript-syntax-check-architectura, | |
test-architectura, | |
] | |
runs-on: ubuntu-latest | |
environment: npm | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: "18.x" | |
registry-url: "https://registry.npmjs.org" | |
- name: PNPM installation | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Dependencies cache unpacking | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
- name: Building workspace dependencies | |
run: | | |
pnpm --filter ts-predicate ci:build | |
pnpm --filter testing-ground ci:build | |
- name: Package dependencies installation | |
run: pnpm install --filter architectura | |
- name: Package build | |
run: pnpm --filter architectura ci:build | |
- name: Publish package | |
id: package-version | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
run: pnpm --filter architectura ci:publish |