Merge branch 'development' of https://github.com/cosmik-network/sembl… #2068
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: Tests | |
| on: | |
| push: | |
| branches: [main, development] | |
| pull_request: | |
| branches: [main, development] | |
| jobs: | |
| dependencies: | |
| name: Install Dependencies | |
| runs-on: ubuntu-latest | |
| outputs: | |
| cache-hit: ${{ steps.cache-deps.outputs.cache-hit }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Cache dependencies | |
| id: cache-deps | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| node_modules | |
| src/webapp/node_modules | |
| src/types/node_modules | |
| key: ${{ runner.os }}-deps-${{ hashFiles('package-lock.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-deps- | |
| - name: Install dependencies | |
| if: steps.cache-deps.outputs.cache-hit != 'true' | |
| run: npm ci | |
| build: | |
| name: Build | |
| runs-on: ubuntu-latest | |
| needs: dependencies | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Restore dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| node_modules | |
| src/webapp/node_modules | |
| src/types/node_modules | |
| key: ${{ runner.os }}-deps-${{ hashFiles('package-lock.json') }} | |
| - name: Install dependencies (if cache miss) | |
| run: | | |
| if [ ! -d "node_modules" ]; then | |
| npm ci | |
| fi | |
| - name: Build project | |
| run: | | |
| npm run build:types | |
| npm run build | |
| unit-tests: | |
| name: Unit Tests | |
| runs-on: ubuntu-latest | |
| needs: dependencies | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Restore dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| node_modules | |
| src/webapp/node_modules | |
| src/types/node_modules | |
| key: ${{ runner.os }}-deps-${{ hashFiles('package-lock.json') }} | |
| - name: Install dependencies (if cache miss) | |
| run: | | |
| if [ ! -d "node_modules" ]; then | |
| npm ci | |
| fi | |
| - name: Run unit tests | |
| run: npm run test:unit -- --maxWorkers=2 | |
| integration-tests: | |
| name: Integration Tests | |
| runs-on: ubuntu-latest | |
| needs: dependencies | |
| services: | |
| docker: | |
| image: docker:24-dind | |
| options: --privileged | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Restore dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| node_modules | |
| src/webapp/node_modules | |
| src/types/node_modules | |
| key: ${{ runner.os }}-deps-${{ hashFiles('package-lock.json') }} | |
| - name: Install dependencies (if cache miss) | |
| run: | | |
| if [ ! -d "node_modules" ]; then | |
| npm ci | |
| fi | |
| - name: Run database integration tests | |
| run: npm run test:integration:db -- --maxWorkers=2 | |
| env: | |
| # Testcontainers needs Docker | |
| TESTCONTAINERS_RYUK_DISABLED: true |