54 lines
1.4 KiB
YAML
54 lines
1.4 KiB
YAML
name: Code Quality
|
|
description: Run linting and basic quality checks per service/platform/environment matrix entry.
|
|
inputs:
|
|
service:
|
|
description: Target service name
|
|
required: true
|
|
platform:
|
|
description: Target platform (e.g., linux/amd64)
|
|
required: true
|
|
environment:
|
|
description: Deployment environment (dev or prod)
|
|
required: true
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: Prepare matrix context
|
|
id: matrix
|
|
uses: ./.github/actions/matrix-support
|
|
with:
|
|
service: ${{ inputs.service }}
|
|
platform: ${{ inputs.platform }}
|
|
environment: ${{ inputs.environment }}
|
|
|
|
- name: Install git-secrets
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
git clone https://github.com/awslabs/git-secrets.git
|
|
sudo make install -C git-secrets
|
|
git secrets --install
|
|
git secrets --scan
|
|
|
|
- name: Go vet
|
|
if: inputs.service != 'dashboard'
|
|
shell: bash
|
|
run: go vet ./...
|
|
|
|
- name: Go unit tests (quality gate)
|
|
if: inputs.service != 'dashboard'
|
|
shell: bash
|
|
run: go test ./...
|
|
|
|
- name: Install dashboard dependencies
|
|
if: inputs.service == 'dashboard'
|
|
working-directory: dashboard
|
|
shell: bash
|
|
run: yarn install --frozen-lockfile
|
|
|
|
- name: Dashboard lint
|
|
if: inputs.service == 'dashboard'
|
|
working-directory: dashboard
|
|
shell: bash
|
|
run: yarn lint
|