@@ -146,6 +146,56 @@ jobs:
146146 uses : actions/checkout@v5
147147 - name : " Lint Terraform"
148148 uses : ./.github/actions/lint-terraform
149+
150+ detect-typescript-changes :
151+ name : " Detect TypeScript Changes"
152+ runs-on : ubuntu-latest
153+ outputs :
154+ typescript_changed : ${{ steps.check.outputs.typescript_changed }}
155+ steps :
156+ - name : " Checkout code"
157+ uses : actions/checkout@v5
158+
159+ - name : " Check for TypeScript changes"
160+ id : check
161+ run : |
162+ git fetch origin main || true # Ensure you have the latest main branch
163+ CHANGED_FILES=$(git diff --name-only HEAD origin/main)
164+ echo "Changed files: $CHANGED_FILES"
165+
166+ if echo "$CHANGED_FILES" | grep -qE '\.ts$'; then
167+ echo "Typescript files have changed."
168+ echo "typescript_changed=true" >> $GITHUB_OUTPUT
169+ else
170+ echo "No Typescript changes detected."
171+ echo "typescript_changed=false" >> $GITHUB_OUTPUT
172+ fi
173+ typecheck-typescript :
174+ name : " Typecheck TypeScript"
175+ runs-on : ubuntu-latest
176+ timeout-minutes : 5
177+ needs : detect-typescript-changes
178+ if : needs.detect-typescript-changes.outputs.typescript_changed == 'true'
179+ steps :
180+ - name : " Checkout code"
181+ uses : actions/checkout@v5
182+ - name : " Typecheck TypeScript"
183+ run : |
184+ npm run typecheck --workspaces
185+ lint-typescript :
186+ name : " Typecheck TypeScript"
187+ runs-on : ubuntu-latest
188+ timeout-minutes : 5
189+ needs : detect-typescript-changes
190+ if : needs.detect-typescript-changes.outputs.typescript_changed == 'true'
191+ steps :
192+ - name : " Checkout code"
193+ uses : actions/checkout@v5
194+ - name : " Typecheck TypeScript"
195+ run : |
196+ npm run lint --workspaces
197+
198+
149199 trivy :
150200 name : " Trivy Scan"
151201 runs-on : ubuntu-latest
0 commit comments