Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
12 changes: 12 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,15 @@
.git
target
tmp

# Local tool state and private service configuration are not build inputs.
.agent
.codex
.config
.vscode
.zed
.workspaces
backups
elf.toml
elf.*.toml
!elf.example.toml
9 changes: 9 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,12 @@ trim_trailing_whitespace=true
[*.{sh,yml,yaml}]
indent_size=2
indent_style=space

[*.{js,json,jsonc,jsx,mjs,mts,ts,tsx}]
indent_size=2
indent_style=space
tab_width=2

[*.py]
indent_size=4
indent_style=space
82 changes: 82 additions & 0 deletions .github/actions/setup-rust/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: ELF Rust CI setup
description: Own the Rust toolchain, cache policy, and pinned CI tools.
inputs:
target:
description: Optional release target triple.
default: ''
checks:
description: Install formatting, workflow lint, and style-check tools.
default: 'false'
integration:
description: Install nextest for external-service tests.
default: 'false'
harness:
description: Install taplo for generated harness configuration.
default: 'false'
runs:
using: composite
steps:
- name: Set up repository Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 # v1.17.0
with:
target: ${{ inputs.target }}
cache: true
cache-on-failure: false
cache-save-if: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') }}
rustflags: ''

- name: Install cargo-make
uses: taiki-e/install-action@b8cecb83565409bcc297b2df6e77f030b2a468d5
with:
tool: cargo-make@0.37.24

- name: Install nextest
if: inputs.checks == 'true' || inputs.integration == 'true'
uses: taiki-e/install-action@b8cecb83565409bcc297b2df6e77f030b2a468d5
with:
tool: nextest@0.9.143

- name: Install taplo
if: inputs.checks == 'true' || inputs.harness == 'true'
uses: taiki-e/install-action@b8cecb83565409bcc297b2df6e77f030b2a468d5
with:
tool: taplo@0.10.0

- name: Install verified actionlint release
if: inputs.checks == 'true'
shell: bash
env:
ACTIONLINT_VERSION: 1.7.12
ACTIONLINT_SHA256: 8aca8db96f1b94770f1b0d72b6dddcb1ebb8123cb3712530b08cc387b349a3d8
run: |
set -euo pipefail
archive="${RUNNER_TEMP}/actionlint.tar.gz"
curl --fail --show-error --silent --location --retry 3 \
"https://github.com/rhysd/actionlint/releases/download/v${ACTIONLINT_VERSION}/actionlint_${ACTIONLINT_VERSION}_linux_amd64.tar.gz" \
--output "${archive}"
echo "${ACTIONLINT_SHA256} ${archive}" | sha256sum --check --strict
tar -xzf "${archive}" -C "${RUNNER_TEMP}" actionlint
install -m 0755 "${RUNNER_TEMP}/actionlint" "${HOME}/.cargo/bin/actionlint"

- name: Install nightly formatter
if: inputs.checks == 'true'
shell: bash
run: rustup toolchain install nightly --profile minimal --component rustfmt --no-self-update

- name: Install verified vibe-style release
if: inputs.checks == 'true'
shell: bash
env:
VSTYLE_VERSION: v0.2.5
VSTYLE_SHA256: ed2cac495e8beb882decc2e65163773ed4680e0ac510f305f96bafd9f9930da3
run: |
set -euo pipefail
asset="vibe-style-x86_64-unknown-linux-gnu-${VSTYLE_VERSION}"
archive="${RUNNER_TEMP}/${asset}.tgz"
curl --fail --show-error --silent --location --retry 3 \
"https://github.com/acg-box/vibe-style/releases/download/${VSTYLE_VERSION}/${asset}.tgz" \
--output "${archive}"
echo "${VSTYLE_SHA256} ${archive}" | sha256sum --check --strict
tar -xzf "${archive}" -C "${RUNNER_TEMP}"
install -m 0755 "${RUNNER_TEMP}/${asset}/vstyle" "${HOME}/.cargo/bin/vstyle"
install -m 0755 "${RUNNER_TEMP}/${asset}/cargo-vstyle" "${HOME}/.cargo/bin/cargo-vstyle"
79 changes: 0 additions & 79 deletions .github/rulesets/any.json

This file was deleted.

141 changes: 0 additions & 141 deletions .github/rulesets/default.json

This file was deleted.

27 changes: 6 additions & 21 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,6 @@ on:
- ".gitignore"
- "docs/**"
merge_group:
paths-ignore:
- "**/*.md"
- ".gitignore"
- "docs/**"
workflow_dispatch:

concurrency:
Expand Down Expand Up @@ -65,32 +61,21 @@ jobs:

steps:
- name: Fetch latest code
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Set up Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659
- name: Set up Rust CI tools
uses: ./.github/actions/setup-rust
with:
cache: true
rustflags: ""
harness: 'true'

- name: Install OS tools (psql, jq)
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends postgresql-client jq

- name: Install taplo
uses: taiki-e/install-action@b8cecb83565409bcc297b2df6e77f030b2a468d5
with:
tool: taplo

- name: Install cargo-make
uses: taiki-e/install-action@b8cecb83565409bcc297b2df6e77f030b2a468d5
with:
tool: cargo-make

- name: Wait for Postgres
run: |
for i in {1..60}; do
for _attempt in {1..60}; do
pg_isready -h 127.0.0.1 -p 5432 -U postgres -d postgres >/dev/null && exit 0
sleep 1
done
Expand All @@ -99,7 +84,7 @@ jobs:

- name: Wait for Qdrant
run: |
for i in {1..60}; do
for _attempt in {1..60}; do
curl -sSf http://127.0.0.1:6333/collections >/dev/null && exit 0
sleep 1
done
Expand Down
Loading
Loading