name: CI - ihm_client on: push: branches: [ main, develop ] pull_request: branches: [ main, develop ] jobs: test: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 with: submodules: recursive - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' - name: Install dependencies run: npm ci - name: Run linting run: npm run lint - name: Run type checking run: npm run type-check - name: Run tests run: npm run test - name: Build application run: npm run build - name: Install Playwright browsers run: npm run e2e:install - name: Run E2E tests run: npm run test:e2e - name: Test Docker build (artefacts) run: | docker build -t ihm-client:dist . docker image rm ihm-client:dist security: runs-on: ubuntu-latest needs: test steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' - name: Install dependencies run: npm ci - name: Run security audit run: npm audit --audit-level=moderate - name: Check for known vulnerabilities run: npm audit --audit-level=high integration-test: runs-on: ubuntu-latest needs: test steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build Docker artefacts run: | docker build -t ihm-client:dist . docker image rm ihm-client:dist