frontend-commons/.github/workflows/lint.yaml

89 lines
2.3 KiB
YAML

name: Linting and type checking (standalone)
on:
workflow_call:
inputs:
SONARQUBE_ENABLED:
required: false
type: boolean
default: false
TESTS_ENABLED:
required: false
type: boolean
default: false
SETUP_REPO_SCRIPT:
required: false
type: string
default: yarn run setup
TEST_SCRIPT:
required: false
type: string
default: yarn run test
LINT_SCRIPT:
required: false
type: string
default: yarn run lint
CHECK_TYPES_SCRIPT:
required: false
type: string
default: yarn run check-types
INSTALL_SCRIPT:
required: false
type: string
default: yarn install --immutable --inline-builds
NODE_VERSION:
required: false
type: string
default: "24"
jobs:
linting_type_checking:
runs-on: ubuntu-latest
env:
NO_YARN_POSTINSTALL: 1
FONTAWESOME_PACKAGE_TOKEN: ${{ secrets.FONTAWESOME_PACKAGE_TOKEN }}
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_API: ${{ vars.TURBO_API }}
TURBO_TEAM: ${{ vars.TURBO_TEAM }}
TURBO_URL: ${{ vars.TURBO_URL }}
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Node.js and Corepack
uses: actions/setup-node@v6
with:
node-version: ${{ inputs.NODE_VERSION }}
- name: Enable Corepack
run: |
corepack enable
- name: Install dependencies
run: |
${{ inputs.INSTALL_SCRIPT }}
- name: Setup repostitory
run: |
${{ inputs.SETUP_REPO_SCRIPT }}
- name: Lint source code (eslint)
run: |
${{ inputs.LINT_SCRIPT }}
- name: Static type checking (TypeScript)
run: |
${{ inputs.CHECK_TYPES_SCRIPT }}
- name: Run tests
if: ${{ inputs.TESTS_ENABLED == true }}
run: |
${{ inputs.TEST_SCRIPT }}
- name: Static code analysis with SonarQube
uses: https://github.com/SonarSource/sonarqube-scan-action@v6
if: ${{ inputs.SONARQUBE_ENABLED == true }}
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
SONAR_HOST_URL: ${{ vars.SONAR_HOST_URL }}
# TODO add dependency scanning / graph here