Skip to content

Commit db2d1e0

Browse files
committed
chore: lakefs CI steps
Signed-off-by: Ion Koutsouris <15728914+ion-elgreco@users.noreply.github.com>
1 parent 54f7df5 commit db2d1e0

4 files changed

Lines changed: 99 additions & 3 deletions

File tree

.github/workflows/build.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,3 +139,40 @@ jobs:
139139
- name: Run tests with native-tls
140140
run: |
141141
cargo test --no-default-features --features integration_test,s3-native-tls,datafusion
142+
143+
integration_test_lakefs:
144+
name: Integration Tests (LakeFS v1.48)
145+
runs-on: ubuntu-latest
146+
env:
147+
CARGO_INCREMENTAL: 0
148+
# Disable full debug symbol generation to speed up CI build and keep memory down
149+
# <https://doc.rust-lang.org/cargo/reference/profiles.html>
150+
RUSTFLAGS: "-C debuginfo=line-tables-only"
151+
# https://github.com/rust-lang/cargo/issues/10280
152+
CARGO_NET_GIT_FETCH_WITH_CLI: "true"
153+
RUST_BACKTRACE: "1"
154+
RUST_LOG: debug
155+
156+
steps:
157+
- uses: actions/checkout@v3
158+
159+
- name: Install minimal stable with clippy and rustfmt
160+
uses: actions-rs/toolchain@v1
161+
with:
162+
profile: default
163+
toolchain: '1.81'
164+
override: true
165+
166+
- name: Download Lakectl
167+
run: |
168+
wget -q https://github.com/treeverse/lakeFS/releases/download/1.48.1/lakeFS_1.48.1_Linux_x86_64.tar.gz
169+
tar -xf lakeFS_1.48.1_Linux_x86_64.tar.gz -C $GITHUB_WORKSPACE
170+
echo "$GITHUB_WORKSPACE" >> $GITHUB_PATH
171+
172+
- name: Start emulated services
173+
run: docker compose -f docker-compose-lakefs.yml up -d
174+
175+
- name: Run tests with rustls (default)
176+
run: |
177+
cargo test --features integration_test_lakefs,lakefs,datafusion
178+

.github/workflows/codecov.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
uses: taiki-e/install-action@cargo-llvm-cov
2727
- uses: Swatinem/rust-cache@v2
2828
- name: Generate code coverage
29-
run: cargo llvm-cov --features ${DEFAULT_FEATURES} --workspace --codecov --output-path codecov.json -- --skip read_table_version_hdfs
29+
run: cargo llvm-cov --features ${DEFAULT_FEATURES} --workspace --codecov --output-path codecov.json -- --skip read_table_version_hdfs --skip test_read_tables_lakefs
3030
- name: Upload coverage to Codecov
3131
uses: codecov/codecov-action@v4
3232
with:

.github/workflows/python_build.yml

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,13 +77,38 @@ jobs:
7777
run: make setup-dat
7878

7979
- name: Run tests
80-
run: uv run pytest -m '((s3 or azure) and integration) or not integration and not benchmark' --doctest-modules
80+
run: uv run --no-sync pytest -m '((s3 or azure) and integration) or not integration and not benchmark' --doctest-modules
8181

8282
- name: Test without pandas
8383
run: |
8484
uv pip uninstall pandas
85-
uv run pytest -m "not pandas and not integration and not benchmark"
85+
uv run --no-sync pytest -m "not pandas and not integration and not benchmark"
8686
uv pip install pandas
87+
88+
test-lakefs:
89+
name: Python Build (Python 3.10 LakeFS Integration tests)
90+
runs-on: ubuntu-latest
91+
env:
92+
RUSTFLAGS: "-C debuginfo=1"
93+
CARGO_INCREMENTAL: 0
94+
95+
steps:
96+
- uses: actions/checkout@v3
97+
98+
- name: Setup Environment
99+
uses: ./.github/actions/setup-env
100+
101+
- name: Start emulated services
102+
run: docker compose -f ../docker-compose-lakefs.yml up -d
103+
104+
- name: Build and install deltalake
105+
run: make develop
106+
107+
- name: Download Data Acceptance Tests (DAT) files
108+
run: make setup-dat
109+
110+
- name: Run tests
111+
run: uv run --no-sync pytest -m '(lakefs and integration)' --doctest-modules
87112

88113
test-pyspark:
89114
name: PySpark Integration Tests
@@ -109,6 +134,7 @@ jobs:
109134
- name: Run tests
110135
run: make test-pyspark
111136

137+
112138
multi-python-running:
113139
name: Running with Python ${{ matrix.python-version }}
114140
runs-on: ubuntu-latest

docker-compose-lakefs.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
services:
2+
lakefs:
3+
image: docker.io/treeverse/lakefs:1.48
4+
ports:
5+
- "8000:8000"
6+
environment:
7+
- LAKEFS_DATABASE_TYPE=local
8+
- LAKEFS_BLOCKSTORE_TYPE=local
9+
- LAKEFS_AUTH_ENCRYPT_SECRET_KEY=some random secret string
10+
- LAKEFS_LOGGING_LEVEL=INFO
11+
- LAKEFS_STATS_ENABLED=${LAKEFS_STATS_ENABLED:-1}
12+
- LAKEFS_INSTALLATION_USER_NAME=delta
13+
- LAKEFS_INSTALLATION_ACCESS_KEY_ID=LAKEFSID
14+
- LAKECTL_CREDENTIALS_ACCESS_KEY_ID=LAKEFSID
15+
- LAKEFS_INSTALLATION_SECRET_ACCESS_KEY=LAKEFSKEY
16+
- LAKECTL_CREDENTIALS_SECRET_ACCESS_KEY=LAKEFSKEY
17+
- LAKECTL_SERVER_ENDPOINT_URL=http://localhost:8000
18+
entrypoint: ["/bin/sh", "-c"]
19+
command:
20+
- |
21+
lakefs run --local-settings &
22+
echo "---- Creating repository ----"
23+
wait-for -t 60 lakefs:8000 -- lakectl repo create lakefs://bronze local://bronze || true
24+
echo ""
25+
echo "lakeFS Web UI: http://127.0.0.1:8000/ >(._.)<"
26+
echo " ( )_ "
27+
echo ""
28+
echo " Access Key ID : $$LAKEFS_INSTALLATION_ACCESS_KEY_ID"
29+
echo " Secret Access Key: $$LAKEFS_INSTALLATION_SECRET_ACCESS_KEY"
30+
echo ""
31+
echo "-------- Let's go and have axolotl fun! --------"
32+
echo ""
33+
wait

0 commit comments

Comments
 (0)