ci: Run CI with specific Parse Server versions #3429
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: ci | |
| on: | |
| push: | |
| branches: [ release, alpha, beta, next-major ] | |
| pull_request: | |
| branches: | |
| - '**' | |
| jobs: | |
| check-lock-file-version: | |
| name: NPM Lock File Version | |
| timeout-minutes: 5 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Check NPM lock file version | |
| uses: mansona/npm-lockfile-version@v1 | |
| with: | |
| version: 2 | |
| check-types: | |
| name: Check Types | |
| timeout-minutes: 10 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Use Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| cache: npm | |
| - run: npm ci | |
| - name: Type Definition Check | |
| run: npm run ci:typecheck | |
| - name: Test Types | |
| run: npm run test:types | |
| check-docs: | |
| name: Check Docs | |
| timeout-minutes: 10 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Use Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| cache: npm | |
| - run: npm ci | |
| - name: Check Docs | |
| run: npm run docs | |
| check-circular: | |
| name: Check Circular Dependencies | |
| timeout-minutes: 15 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Use Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| cache: npm | |
| - run: npm ci | |
| - name: Circular Dependencies | |
| run: npm run madge:circular | |
| check-lint: | |
| name: Lint | |
| timeout-minutes: 15 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Use Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| cache: npm | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Lint | |
| run: npm run lint | |
| build: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| strategy: | |
| matrix: | |
| include: | |
| - name: Node 18, Parse Server 7 | |
| NODE_VERSION: 18.20.4 | |
| PARSE_SERVER_VERSION: 7 | |
| - name: Node 20, Parse Server 7 | |
| NODE_VERSION: 20.15.1 | |
| PARSE_SERVER_VERSION: 7 | |
| - name: Node 22, Parse Server 7 | |
| NODE_VERSION: 22.4.1 | |
| PARSE_SERVER_VERSION: 7 | |
| - name: Node 18, Parse Server 8 | |
| NODE_VERSION: 18.20.4 | |
| PARSE_SERVER_VERSION: 8 | |
| - name: Node 20, Parse Server 8 | |
| NODE_VERSION: 20.15.1 | |
| PARSE_SERVER_VERSION: 8 | |
| - name: Node 22, Parse Server 8 | |
| NODE_VERSION: 22.4.1 | |
| PARSE_SERVER_VERSION: 8 | |
| fail-fast: false | |
| name: Build - ${{ matrix.name }} | |
| steps: | |
| - name: Fix usage of insecure GitHub protocol | |
| run: sudo git config --system url."https://github".insteadOf "git://github" | |
| - uses: actions/checkout@v3 | |
| - name: Use Node.js | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: ${{ matrix.NODE_VERSION }} | |
| cache: npm | |
| - name: Install Parse Server ${{ matrix.PARSE_SERVER_VERSION }} | |
| run: npm i -DE parse-server@${{ matrix.PARSE_SERVER_VERSION }} | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Run unit tests | |
| run: npm test -- --maxWorkers=4 | |
| - name: Run integration tests | |
| run: npm run test:mongodb | |
| env: | |
| CI: true | |
| - name: Upload code coverage | |
| uses: codecov/codecov-action@v4 | |
| with: | |
| # Set to `true` once codecov token bug is fixed; https://github.com/parse-community/parse-server/issues/9129 | |
| fail_ci_if_error: false | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true |