Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
699b5a5
ci: gate DigitalOcean steps behind vars.DO_ENABLED (we no longer use …
evereq Jul 10, 2026
3505dc4
ci(docs): build directory-web-template-docs image (was stale)
evereq Jul 11, 2026
a4dd80a
ci(docs): build docs English-only (full multi-locale SSG ran ~2h → EN…
evereq Jul 11, 2026
69c76bf
ci: x4 runner (not x8) + bump actions to latest Node-24 versions (rem…
evereq Jul 14, 2026
cb3b692
ci: x4 runner (not x8) + bump actions to latest Node-24 versions (rem…
evereq Jul 14, 2026
c293d95
ci: x4 runner (not x8) + bump actions to latest Node-24 versions (rem…
evereq Jul 14, 2026
25d0f06
ci: x4 runner (not x8) + bump actions to latest Node-24 versions (rem…
evereq Jul 14, 2026
26eef74
ci: x4 runner (not x8) + bump actions to latest Node-24 versions (rem…
evereq Jul 14, 2026
486e940
ci: x4 runner (not x8) + bump actions to latest Node-24 versions (rem…
evereq Jul 14, 2026
895cd22
ci: x4 runner (not x8) + bump actions to latest Node-24 versions (rem…
evereq Jul 14, 2026
566d748
ci: x4 runner (not x8) + bump actions to latest Node-24 versions (rem…
evereq Jul 14, 2026
9a82535
ci: x4 runner (not x8) + bump actions to latest Node-24 versions (rem…
evereq Jul 14, 2026
bff7f5e
ci: x4 runner (not x8) + bump actions to latest Node-24 versions (rem…
evereq Jul 14, 2026
efa6397
ci: x4 runner (not x8) + bump actions to latest Node-24 versions (rem…
evereq Jul 14, 2026
334b546
ci: x4 runner (not x8) + bump actions to latest Node-24 versions (rem…
evereq Jul 14, 2026
1521cfd
ci: x4 runner (not x8) + bump actions to latest Node-24 versions (rem…
evereq Jul 14, 2026
9c64a57
ci: x4 runner (not x8) + bump actions to latest Node-24 versions (rem…
evereq Jul 14, 2026
4e9d377
ci: x4 runner (not x8) + bump actions to latest Node-24 versions (rem…
evereq Jul 14, 2026
9648d62
fix(cache): skip 2MB-capped Data Cache for oversized listings (#988)
evereq Jul 18, 2026
e468bc3
ci: move CodeQL runners to self-hosted ARC fleet
evereq Jul 19, 2026
5c9d000
Merge pull request #989 from ever-works/ci/runners-selfhosted-develop
evereq Jul 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,13 @@ jobs:

steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Setup pnpm
uses: pnpm/action-setup@v4
uses: pnpm/action-setup@v6

- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v7
with:
node-version: '24'
cache: pnpm
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ concurrency:
jobs:
analyze:
name: Analyze (${{ matrix.language }})
runs-on: ubuntu-latest
runs-on: ${{ vars.RUNNER_LINUX_X64_4 || 'ubuntu-latest' }}
timeout-minutes: 360
permissions:
actions: read
Expand All @@ -31,13 +31,13 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Setup pnpm
uses: pnpm/action-setup@v4
uses: pnpm/action-setup@v6

- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v7
with:
node-version: '24'
cache: pnpm
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/deploy_vercel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,13 @@ jobs:
- name: Target environment
run: echo "Deploying to ${{ inputs.environment }}"

- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Setup pnpm
uses: pnpm/action-setup@v4
uses: pnpm/action-setup@v6

- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v7
with:
node-version: "24"
cache: pnpm
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/disable-default-codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ concurrency:
jobs:
disable-default:
name: Disable Default CodeQL Configuration
runs-on: ubuntu-latest
runs-on: ${{ vars.RUNNER_LINUX_X64_4 || 'ubuntu-latest' }}
permissions:
security-events: write
actions: read
contents: read

steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Disable Default CodeQL Setup
uses: github/codeql-action/init@v3
Expand Down
20 changes: 12 additions & 8 deletions .github/workflows/docker-build-publish-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Resolve image tags
id: meta
Expand All @@ -32,6 +32,7 @@ jobs:
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
DIGITALOCEAN_ACCESS_TOKEN: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }}
DIGITALOCEAN_REGISTRY: ${{ vars.DIGITALOCEAN_REGISTRY || 'ever' }}
DO_ENABLED: ${{ vars.DO_ENABLED }}
run: |
set -euo pipefail

Expand All @@ -57,7 +58,10 @@ jobs:
fi

digitalocean_enabled=false
if [[ -n "$DIGITALOCEAN_ACCESS_TOKEN" && -n "$DIGITALOCEAN_REGISTRY" ]]; then
# DigitalOcean image pushes are opt-in: gated behind vars.DO_ENABLED == 'true'
# so the registry.digitalocean.com tag is never added (and buildx never pushes
# to DO) unless DO is explicitly enabled. DO code is kept, just skipped by default.
if [[ "${DO_ENABLED:-}" == "true" && -n "$DIGITALOCEAN_ACCESS_TOKEN" && -n "$DIGITALOCEAN_REGISTRY" ]]; then
do_registry="$(printf '%s' "$DIGITALOCEAN_REGISTRY" | tr '[:upper:]' '[:lower:]')"
tags+=(
"registry.digitalocean.com/${do_registry}/${image_name}:latest"
Expand All @@ -75,34 +79,34 @@ jobs:
} >> "$GITHUB_OUTPUT"

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Login to Docker Hub
if: steps.meta.outputs.dockerhub_enabled == 'true'
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Install doctl
if: steps.meta.outputs.digitalocean_enabled == 'true'
if: ${{ steps.meta.outputs.digitalocean_enabled == 'true' && vars.DO_ENABLED == 'true' }}
uses: digitalocean/action-doctl@v2
with:
token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }}

- name: Login to DigitalOcean Container Registry
if: steps.meta.outputs.digitalocean_enabled == 'true'
if: ${{ steps.meta.outputs.digitalocean_enabled == 'true' && vars.DO_ENABLED == 'true' }}
run: doctl registry login --expiry-seconds 3600

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4

- name: Build and publish image
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
with:
context: .
file: Dockerfile
Expand Down
20 changes: 12 additions & 8 deletions .github/workflows/docker-build-publish-prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Resolve image tags
id: meta
Expand All @@ -32,6 +32,7 @@ jobs:
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
DIGITALOCEAN_ACCESS_TOKEN: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }}
DIGITALOCEAN_REGISTRY: ${{ vars.DIGITALOCEAN_REGISTRY || 'ever' }}
DO_ENABLED: ${{ vars.DO_ENABLED }}
run: |
set -euo pipefail

Expand All @@ -57,7 +58,10 @@ jobs:
fi

digitalocean_enabled=false
if [[ -n "$DIGITALOCEAN_ACCESS_TOKEN" && -n "$DIGITALOCEAN_REGISTRY" ]]; then
# DigitalOcean image pushes are opt-in: gated behind vars.DO_ENABLED == 'true'
# so the registry.digitalocean.com tag is never added (and buildx never pushes
# to DO) unless DO is explicitly enabled. DO code is kept, just skipped by default.
if [[ "${DO_ENABLED:-}" == "true" && -n "$DIGITALOCEAN_ACCESS_TOKEN" && -n "$DIGITALOCEAN_REGISTRY" ]]; then
do_registry="$(printf '%s' "$DIGITALOCEAN_REGISTRY" | tr '[:upper:]' '[:lower:]')"
tags+=(
"registry.digitalocean.com/${do_registry}/${image_name}:latest"
Expand All @@ -75,34 +79,34 @@ jobs:
} >> "$GITHUB_OUTPUT"

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Login to Docker Hub
if: steps.meta.outputs.dockerhub_enabled == 'true'
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Install doctl
if: steps.meta.outputs.digitalocean_enabled == 'true'
if: ${{ steps.meta.outputs.digitalocean_enabled == 'true' && vars.DO_ENABLED == 'true' }}
uses: digitalocean/action-doctl@v2
with:
token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }}

- name: Login to DigitalOcean Container Registry
if: steps.meta.outputs.digitalocean_enabled == 'true'
if: ${{ steps.meta.outputs.digitalocean_enabled == 'true' && vars.DO_ENABLED == 'true' }}
run: doctl registry login --expiry-seconds 3600

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4

- name: Build and publish image
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
with:
context: .
file: Dockerfile
Expand Down
20 changes: 12 additions & 8 deletions .github/workflows/docker-build-publish-stage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Resolve image tags
id: meta
Expand All @@ -32,6 +32,7 @@ jobs:
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
DIGITALOCEAN_ACCESS_TOKEN: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }}
DIGITALOCEAN_REGISTRY: ${{ vars.DIGITALOCEAN_REGISTRY || 'ever' }}
DO_ENABLED: ${{ vars.DO_ENABLED }}
run: |
set -euo pipefail

Expand All @@ -57,7 +58,10 @@ jobs:
fi

digitalocean_enabled=false
if [[ -n "$DIGITALOCEAN_ACCESS_TOKEN" && -n "$DIGITALOCEAN_REGISTRY" ]]; then
# DigitalOcean image pushes are opt-in: gated behind vars.DO_ENABLED == 'true'
# so the registry.digitalocean.com tag is never added (and buildx never pushes
# to DO) unless DO is explicitly enabled. DO code is kept, just skipped by default.
if [[ "${DO_ENABLED:-}" == "true" && -n "$DIGITALOCEAN_ACCESS_TOKEN" && -n "$DIGITALOCEAN_REGISTRY" ]]; then
do_registry="$(printf '%s' "$DIGITALOCEAN_REGISTRY" | tr '[:upper:]' '[:lower:]')"
tags+=(
"registry.digitalocean.com/${do_registry}/${image_name}:latest"
Expand All @@ -75,34 +79,34 @@ jobs:
} >> "$GITHUB_OUTPUT"

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Login to Docker Hub
if: steps.meta.outputs.dockerhub_enabled == 'true'
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Install doctl
if: steps.meta.outputs.digitalocean_enabled == 'true'
if: ${{ steps.meta.outputs.digitalocean_enabled == 'true' && vars.DO_ENABLED == 'true' }}
uses: digitalocean/action-doctl@v2
with:
token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }}

- name: Login to DigitalOcean Container Registry
if: steps.meta.outputs.digitalocean_enabled == 'true'
if: ${{ steps.meta.outputs.digitalocean_enabled == 'true' && vars.DO_ENABLED == 'true' }}
run: doctl registry login --expiry-seconds 3600

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4

- name: Build and publish image
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
with:
context: .
file: Dockerfile
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ jobs:

steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Setup pnpm
uses: pnpm/action-setup@v4
uses: pnpm/action-setup@v6

- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v7
with:
node-version: '24'
cache: pnpm
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -108,13 +108,13 @@ jobs:

steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Setup pnpm
uses: pnpm/action-setup@v4
uses: pnpm/action-setup@v6

- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v7
with:
node-version: '24'
cache: pnpm
Expand Down Expand Up @@ -250,15 +250,15 @@ jobs:

- name: Upload Playwright report (shard ${{ matrix.shard }})
if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: playwright-report-shard-${{ matrix.shard }}
path: apps/web-e2e/playwright-report
retention-days: 14

- name: Upload test results (shard ${{ matrix.shard }})
if: failure()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: playwright-test-results-shard-${{ matrix.shard }}
path: apps/web-e2e/test-results
Expand Down
13 changes: 8 additions & 5 deletions .github/workflows/k8s-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,21 @@ permissions:
packages: write
jobs:
build:
runs-on: ${{ vars.RUNNER_LINUX_X64_8 || vars.RUNNER_LINUX_X64_4 || 'ubuntu-latest' }}
runs-on: ${{ vars.RUNNER_LINUX_X64_4 || 'ubuntu-latest' }}
strategy:
fail-fast: false
matrix:
include:
- image: directory-web-template
dockerfile: Dockerfile
context: .
- image: directory-web-template-docs
dockerfile: apps/docs/Dockerfile
context: .
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
- uses: docker/login-action@v3
- uses: actions/checkout@v7
- uses: docker/setup-buildx-action@v4
- uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
Expand All @@ -35,7 +38,7 @@ jobs:
main|master) echo "tag=prod" >> "$GITHUB_OUTPUT" ;;
*) echo "tag=${GITHUB_REF_NAME//\//-}" >> "$GITHUB_OUTPUT" ;;
esac
- uses: docker/build-push-action@v6
- uses: docker/build-push-action@v7
with:
context: ${{ matrix.context }}
file: ${{ matrix.dockerfile }}
Expand Down
Loading
Loading