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 strategy: matrix: node: [16.15.1] steps: - name: Checkout uses: actions/checkout@v3 - name: Install node uses: actions/setup-node@v3 with: node-version: ${{ matrix.node }} - name: Install pnpm uses: pnpm/action-setup@v2.0.1 id: pnpm-install with: version: 7 run_install: false - name: Get pnpm store directory id: pnpm-cache run: | echo "::set-output name=pnpm_cache_dir::$(pnpm store path)" - name: Setup pnpm cache uses: actions/cache@v3 with: path: ${{ steps.pnpm-cache.outputs.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 strategy: matrix: node: [16.15.1] steps: - name: Checkout uses: actions/checkout@v3 - name: Install node uses: actions/setup-node@v3 with: node-version: ${{ matrix.node }} - name: Install pnpm uses: pnpm/action-setup@v2.0.1 id: pnpm-install with: version: 7 run_install: false - name: Get pnpm store directory id: pnpm-cache run: | echo "::set-output name=pnpm_cache_dir::$(pnpm store path)" - name: Setup pnpm cache uses: actions/cache@v3 with: path: ${{ steps.pnpm-cache.outputs.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 strategy: matrix: node: [16.15.1] steps: - name: Checkout uses: actions/checkout@v3 - name: Install node uses: actions/setup-node@v3 with: node-version: ${{ matrix.node }} - name: Install pnpm uses: pnpm/action-setup@v2.0.1 id: pnpm-install with: version: 7 run_install: false - name: Get pnpm store directory id: pnpm-cache run: | echo "::set-output name=pnpm_cache_dir::$(pnpm store path)" - name: Setup pnpm cache uses: actions/cache@v3 with: path: ${{ steps.pnpm-cache.outputs.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: Submit coverage run: ${{ github.workspace }}/frontend/apps/remark42/node_modules/.bin/codecov env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}