name: CI on: push: branches: - '**' pull_request: branches: [dev, main] jobs: lint-and-format: runs-on: ubuntu-docker-dind container: image: git.byting-pandas.ninja/ci/node22-docker:latest credentials: username: ${{ secrets.REGISTRY_USER }} password: ${{ secrets.REGISTRY_TOKEN }} steps: - uses: actions/checkout@v4 - run: corepack enable - run: corepack prepare pnpm@11.11.0 --activate - run: pnpm install --frozen-lockfile - name: Lint run: pnpm lint - name: Check formatting run: pnpm format:check changeset-check: runs-on: ubuntu-docker-dind container: image: git.byting-pandas.ninja/ci/node22-docker:latest credentials: username: ${{ secrets.REGISTRY_USER }} password: ${{ secrets.REGISTRY_TOKEN }} steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - run: corepack enable - run: corepack prepare pnpm@11.11.0 --activate - run: pnpm install --frozen-lockfile - name: Verify changeset exists continue-on-error: true run: pnpm changeset status --since=origin/dev unit-tests: runs-on: ubuntu-docker-dind container: image: git.byting-pandas.ninja/ci/node22-docker:latest credentials: username: ${{ secrets.REGISTRY_USER }} password: ${{ secrets.REGISTRY_TOKEN }} steps: - uses: actions/checkout@v4 - run: corepack enable - run: corepack prepare pnpm@11.11.0 --activate - run: pnpm install --frozen-lockfile - name: Run unit tests run: pnpm test:unit build-test-image: runs-on: ubuntu-docker-dind container: image: git.byting-pandas.ninja/ci/node22-docker:latest credentials: username: ${{ secrets.REGISTRY_USER }} password: ${{ secrets.REGISTRY_TOKEN }} options: --network host env: DOCKER_HOST: tcp://localhost:2375 steps: - uses: actions/checkout@v4 - name: Build and push test image run: | docker login git.byting-pandas.ninja -u ${{ secrets.REGISTRY_USER }} -p ${{ secrets.REGISTRY_TOKEN }} docker build -t git.byting-pandas.ninja/ci/luna-charts-test:${{ gitea.sha }} -f Dockerfile.test . docker push git.byting-pandas.ninja/ci/luna-charts-test:${{ gitea.sha }} component-tests: needs: build-test-image runs-on: ubuntu-docker-dind container: image: git.byting-pandas.ninja/ci/luna-charts-test:${{ gitea.sha }} credentials: username: ${{ secrets.REGISTRY_USER }} password: ${{ secrets.REGISTRY_TOKEN }} steps: - name: Run component tests (Playwright) working-directory: packages/luna-charts run: pnpm test:browser