Skip to content

feat: redesign automation connect UX with silent connect and self-renewal #29

feat: redesign automation connect UX with silent connect and self-renewal

feat: redesign automation connect UX with silent connect and self-renewal #29

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
jobs:
reuse:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: REUSE compliance check
uses: fsfe/reuse-action@676e2d560c9a403aa252096d99fcab3e1132b0f5 # v6.0.0
commitlint:
runs-on: ubuntu-latest
if: github.event_name == 'pull_request' && github.actor != 'dependabot[bot]'
steps:
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: 24.15.0
- name: Install commitlint
run: npm install --no-save @commitlint/cli @commitlint/config-conventional
- name: Lint PR commits
run: npx commitlint --from ${{ github.event.pull_request.base.sha }} --to ${{ github.event.pull_request.head.sha }} --verbose
frontend:
runs-on: ubuntu-latest
defaults:
run:
working-directory: frontend
steps:
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
with:
version: 10.34.1
- name: Setup Node.js
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: 24.15.0
cache: pnpm
cache-dependency-path: frontend/pnpm-lock.yaml
- name: Install dependencies
run: pnpm install
- name: Check dependency licenses
run: node scripts/check-licenses.mjs
- name: Lint
run: pnpm lint
- name: Check types
run: pnpm check:types
- name: Run unit tests
run: pnpm test:unit
- name: Build
run: pnpm build
- name: Upload dist
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: frontend-dist
path: frontend/dist
retention-days: 1
backend:
runs-on: ubuntu-latest
defaults:
run:
working-directory: backend
steps:
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Setup Go
uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0
with:
go-version-file: backend/go.mod
cache-dependency-path: backend/go.sum
- name: Build
run: go build ./...
- name: Vet
run: go vet ./...
- name: Unit tests
run: go test ./...
e2e:
runs-on: ubuntu-latest
needs: [frontend, backend]
steps:
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
with:
version: 10.34.1
- name: Setup Node.js
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: 24.15.0
cache: pnpm
cache-dependency-path: frontend/pnpm-lock.yaml
- name: Setup Go
uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0
with:
go-version-file: backend/go.mod
cache-dependency-path: backend/go.sum
- name: Download frontend dist
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: frontend-dist
path: frontend/dist
- name: Add host.docker.internal
run: echo "127.0.0.1 host.docker.internal" | sudo tee -a /etc/hosts
- name: Start dev stack
env:
LLM_ENDPOINT: http://fake-llm:8080/v1
LLM_MODEL: fake-model
LLM_API_KEY: ''
run: docker compose --profile test up -d
- name: Wait for oCIS
run: |
for i in $(seq 1 60); do
curl -sk https://host.docker.internal:9200/status.php && exit 0
sleep 2
done
echo "oCIS did not become ready in time" >&2
exit 1
- name: Install frontend dependencies (for Playwright)
working-directory: frontend
run: pnpm install
- name: Install Playwright browsers
working-directory: frontend
run: pnpm exec playwright install --with-deps chromium
- name: Backend e2e tests
working-directory: backend
run: go test -tags=e2e ./tests/e2e/...
- name: Frontend e2e tests
working-directory: frontend
run: pnpm test:e2e
- name: Dump stack logs on failure
if: failure()
run: docker compose --profile test logs
- name: Tear down dev stack
if: always()
run: docker compose --profile test down -v