Skip to content

Running CI/CD for event push (Triggered by user SmashingQuasar) #374

Running CI/CD for event push (Triggered by user SmashingQuasar)

Running CI/CD for event push (Triggered by user SmashingQuasar) #374

Workflow file for this run

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: 9
run_install: true
- 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
pnpm --filter toolbox 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: 9
run_install: true
- 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
pnpm --filter toolbox 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: 9
run_install: true
- 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
pnpm --filter toolbox 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 testing-ground ci:build
pnpm --filter ts-predicate ci:build
pnpm --filter toolbox 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