Skip to content

Generate one file per resource in every layer #358

Generate one file per resource in every layer

Generate one file per resource in every layer #358

name: Typescript Copier API Build
on:
push:
paths:
- typescript/**
- .github/workflows/build-typescript-pipeline.yaml
- .github/actions/setup-copier-template/**
branches:
- main
pull_request:
paths:
- typescript/**
- .github/workflows/build-typescript-pipeline.yaml
- .github/actions/setup-copier-template/**
jobs:
build-typescript:
runs-on: ${{ matrix.os }}
strategy:
# Windows and macOS risks don't depend on the cloud, so each runs once.
matrix:
os:
- ubuntu-latest
template-type:
- typescript
cloud-service:
- "Azure Function App"
- "GCP Cloud Function"
- "AWS Lambda"
fixture:
- single
- edge
include:
- os: windows-latest
template-type: typescript
cloud-service: "Azure Function App"
fixture: single
- os: macos-latest
template-type: typescript
cloud-service: "AWS Lambda"
fixture: single
fail-fast: false
steps:
- name: Check out
uses: actions/checkout@v7
- name: Setup Copier Template
uses: ./.github/actions/setup-copier-template
with:
template-language: ${{ matrix.template-type }}
template-cloud-service: ${{ matrix.cloud-service }}
resources-fixture: ${{ matrix.fixture }}
- name: Setup Node Environment
uses: actions/setup-node@v7
with:
node-version: ${{ matrix.cloud-service == 'Azure Function App' && '22.x' || '24.x' }}
- run: corepack enable
shell: bash
- name: Run install
run: yarn install --no-immutable
working-directory: KittenClaws
shell: bash
- name: Run build
run: yarn build
working-directory: KittenClaws
shell: bash
- name: Run lint
run: yarn lint
working-directory: KittenClaws
shell: bash
- name: Unit tests
run: yarn test:unit
working-directory: KittenClaws
shell: bash
- name: Run dependency vulnerability scan
continue-on-error: true
uses: ./.github/actions/dependency-audit
with:
command: yarn npm audit --severity moderate
title: TypeScript dependency vulnerability scan (${{ matrix.cloud-service }}, ${{ matrix.fixture }})