Skip to content

CI

CI #103

Workflow file for this run

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: Cache static tool outputs
uses: actions/cache@v4
with:
path: |
.cache/eslint
.cache/tsc
.cache/vite
.cache/vitest-unit
key: static-tools-${{ runner.os }}-node-22-${{ hashFiles('pnpm-lock.yaml', 'package.json', 'tsconfig.json', 'eslint.config.mjs', 'vite.config.ts', 'vitest.unit.config.ts') }}
restore-keys: |
static-tools-${{ runner.os }}-node-22-
- 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
VLEI_BRANCH: main
VLEI_REF: f514b9431c5f965b5f7f64a8693e19df2f181564
PUPPETEER_CACHE_DIR: /home/runner/.cache/puppeteer
PYTHON_VERSION: "3.12.8"
VITE_OPERATION_TIMEOUT_MS: "45000"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Cache apt packages
uses: actions/cache@v4
with:
path: .ci/apt
key: apt-${{ runner.os }}-${{ runner.arch }}-libsodium-dev-v1
- name: Install system dependencies
run: scripts/ci/install-system-deps.sh
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
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 }}-${{ env.VLEI_REF }}
- name: Cache pinned KERI wheels
uses: actions/cache@v4
with:
path: .ci/wheels
key: keri-wheels-${{ runner.os }}-python-${{ env.PYTHON_VERSION }}-${{ hashFiles('.github/ci/keria-runtime-requirements.txt', 'scripts/ci/install-keri-stack.sh') }}-${{ env.KERIPY_REF }}-${{ env.KERIA_REF }}-${{ env.VLEI_REF }}
- name: Cache live tool outputs
uses: actions/cache@v4
with:
path: |
.cache/vite
.cache/vitest
key: live-tools-${{ runner.os }}-node-22-${{ hashFiles('pnpm-lock.yaml', 'package.json', 'vite.config.ts', 'vitest.config.ts') }}
restore-keys: |
live-tools-${{ runner.os }}-node-22-
- 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, KERIA, and vLEI
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