ci: parallelize tests and cleanup setup #98
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: | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| static: | |
| name: Static app checks | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10.33.0 | |
| run_install: false | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "22" | |
| cache: pnpm | |
| - name: Install Node dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Run static app checks | |
| run: pnpm ci:static | |
| live: | |
| name: Live KERIA smoke | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 35 | |
| env: | |
| KERIPY_BRANCH: v1.2.13 | |
| KERIPY_REF: cbbf700fa8091587b96b5475c5f50d1d8bf3ca40 | |
| KERIA_BRANCH: main | |
| KERIA_REF: aba457cab3813078bfedb65a7d819f48d86974b8 | |
| PUPPETEER_CACHE_DIR: /home/runner/.cache/puppeteer | |
| VITE_OPERATION_TIMEOUT_MS: "45000" | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libsodium-dev | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12.8" | |
| cache: pip | |
| cache-dependency-path: .github/ci/keria-runtime-requirements.txt | |
| - name: Set up pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10.33.0 | |
| run_install: false | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "22" | |
| cache: pnpm | |
| - name: Cache pinned KERI repositories | |
| uses: actions/cache@v4 | |
| with: | |
| path: .ci/deps | |
| key: keri-repos-${{ runner.os }}-${{ env.KERIPY_REF }}-${{ env.KERIA_REF }} | |
| - name: Cache Puppeteer browser | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/puppeteer | |
| key: puppeteer-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }} | |
| restore-keys: | | |
| puppeteer-${{ runner.os }}- | |
| - name: Install Node dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Install Puppeteer browser | |
| run: pnpm exec puppeteer browsers install chrome | |
| - name: Install pinned KERIpy and KERIA | |
| run: scripts/ci/install-keri-stack.sh | |
| - name: Start KERIA and demo witnesses | |
| run: scripts/ci/start-keri-stack.sh | |
| - name: Run live KERIA smoke | |
| run: pnpm ci:live | |
| - name: Upload KERIA stack logs | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: keria-stack-logs | |
| path: ${{ runner.temp }}/keri-stack/logs | |
| if-no-files-found: ignore | |
| - name: Stop KERIA stack | |
| if: always() | |
| run: scripts/ci/stop-keri-stack.sh |