name: ci on: pull_request: branches: [ main ] push: branches: [ main ] jobs: build-docker: name: build docker runs-on: ubuntu-latest if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' }} steps: - uses: actions/checkout@v4 - run: docker build -t test-docker-image-build . # build the editor build-node: name: "build on ${{ matrix.os }}" runs-on: ${{ matrix.os }} if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' }} strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version-file: '.nvmrc' - run: npm ci - run: npm run build - run: npm run lint - run: npm run lint-css build-artifacts: name: "build artifacts" runs-on: ubuntu-latest if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' }} steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version-file: '.nvmrc' - run: npm ci - run: npm run build - name: artifacts/maputnik uses: actions/upload-artifact@v4 with: name: maputnik path: dist # Build and upload desktop CLI artifacts - name: Set up Go uses: actions/setup-go@v5 with: go-version: ^1.23.x cache-dependency-path: desktop/go.sum id: go - name: Build desktop artifacts run: npm run build-desktop - name: Artifacts/linux uses: actions/upload-artifact@v4 with: name: maputnik-linux path: ./desktop/bin/linux/ - name: Artifacts/darwin uses: actions/upload-artifact@v4 with: name: maputnik-darwin path: ./desktop/bin/darwin/ - name: Artifacts/windows uses: actions/upload-artifact@v4 with: name: maputnik-windows path: ./desktop/bin/windows/ e2e-tests: name: "E2E tests using ${{ matrix.browser }}" strategy: fail-fast: false matrix: browser: [chrome] runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v4 - run: npm ci - name: Cypress run uses: cypress-io/github-action@v6 with: build: npm run build start: npm run start browser: ${{ matrix.browser }} - name: Upload coverage reports to Codecov uses: codecov/codecov-action@v5 with: files: ${{ github.workspace }}/.nyc_output/out.json verbose: true