feat: redesign automation connect UX with silent connect and self-renewal #29
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: | |
| 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 |