name: "@remark42/api" on: push: branches: - master paths: - ".github/workflows/ci-frontend-api.yml" - "frontend/packages/**" - "!**.md" pull_request: paths: - ".github/workflows/ci-frontend-api.yml" - "frontend/packages/**" - "!**.md" jobs: type-check: name: Type check runs-on: ubuntu-latest permissions: contents: read strategy: matrix: node: [ 16 ] steps: - name: Checkout uses: actions/checkout@v6 with: persist-credentials: false - name: Install node uses: actions/setup-node@v6 with: node-version: ${{ matrix.node }} - name: Install pnpm uses: pnpm/action-setup@v4.2.0 id: pnpm-install with: version: 8 run_install: false - name: Get pnpm store directory id: pnpm-cache run: echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_ENV - name: Setup pnpm cache uses: actions/cache@v4 with: path: ${{ env.pnpm_cache_dir }} key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - name: Install dependencies run: pnpm i working-directory: ./frontend - name: Run type check run: pnpm type-check:api working-directory: ./frontend lint: name: Lint runs-on: ubuntu-latest permissions: contents: read strategy: matrix: node: [ 16 ] steps: - name: Checkout uses: actions/checkout@v6 with: persist-credentials: false - name: Install node uses: actions/setup-node@v6 with: node-version: ${{ matrix.node }} - name: Install pnpm uses: pnpm/action-setup@v4.2.0 id: pnpm-install with: version: 8 run_install: false - name: Get pnpm store directory id: pnpm-cache run: echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_ENV - name: Setup pnpm cache uses: actions/cache@v4 with: path: ${{ env.pnpm_cache_dir }} key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - name: Install dependencies run: pnpm i working-directory: ./frontend - name: Run linters run: pnpm lint:api working-directory: ./frontend/ test: name: Tests & Coverage runs-on: ubuntu-latest permissions: contents: read strategy: matrix: node: [ 16 ] steps: - name: Checkout uses: actions/checkout@v6 with: persist-credentials: false - name: Install node uses: actions/setup-node@v6 with: node-version: ${{ matrix.node }} - name: Install pnpm uses: pnpm/action-setup@v4.2.0 id: pnpm-install with: version: 8 run_install: false - name: Get pnpm store directory id: pnpm-cache run: echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_ENV - name: Setup pnpm cache uses: actions/cache@v4 with: path: ${{ env.pnpm_cache_dir }} key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - name: Install dependencies run: pnpm i working-directory: ./frontend - name: Test & Coverage run: pnpm coverage:api working-directory: ./frontend - name: Upload coverage to Codecov uses: codecov/codecov-action@v5 with: token: ${{ secrets.CODECOV_TOKEN }} working-directory: ./frontend codecov_yml_path: ./frontend/apps/remark42/codecov.yml