Continuing this thread in an issue so that we can merge the PR.
Nix has different tools for different situations. In this case, a development shell. It acts similar to a makefile and is completely opt in and fixes the lack of unified build command.
If we choose to opt the CI into using the flake then we can ::
- Cache the build artifacts into Github Actions Cache
- Replace the Hurl archive scripts
|
- name: Restore Hurl archive |
|
id: hurl-cache |
|
uses: actions/cache@v6 |
|
with: |
|
path: .cache/hurl |
|
key: hurl-${{ runner.os }}-x86_64-unknown-linux-gnu-${{ env.HURL_VERSION }} |
|
- name: Download Hurl archive |
|
if: steps.hurl-cache.outputs.cache-hit != 'true' |
|
run: | |
|
set -euo pipefail |
|
archive="hurl-${HURL_VERSION}-x86_64-unknown-linux-gnu.tar.gz" |
|
base_url="https://github.com/Orange-OpenSource/hurl/releases/download/${HURL_VERSION}" |
|
mkdir -p .cache/hurl |
|
curl --fail --location --retry 5 --retry-delay 2 --output ".cache/hurl/${archive}" "${base_url}/${archive}" |
|
curl --fail --location --retry 5 --retry-delay 2 --output ".cache/hurl/${archive}.sha256" "${base_url}/${archive}.sha256" |
|
( |
|
cd .cache/hurl |
|
expected_sha="$(tr -d '[:space:]' < "${archive}.sha256")" |
|
actual_sha="$(sha256sum "$archive" | cut -d ' ' -f 1)" |
|
test "$expected_sha" = "$actual_sha" |
|
) |
|
- name: Upload Hurl archive |
|
uses: actions/upload-artifact@v7 |
|
with: |
|
name: hurl-${{ env.HURL_VERSION }}-x86_64-unknown-linux-gnu |
|
path: .cache/hurl/* |
|
if-no-files-found: error |
|
retention-days: 1 |
- Replace the Playwright scripts
|
- uses: ./.github/actions/install-frontend-dependencies |
|
- run: sudo apt-get update && sudo apt-get install -y unixodbc-dev |
|
- run: npx playwright install --with-deps --only-shell chromium |
- Replace the OBDC installer scripts
|
- name: Install PostgreSQL ODBC driver |
|
if: matrix.setup_odbc |
|
run: sudo apt-get install -y odbc-postgresql |
|
- name: Install Oracle ODBC driver |
|
if: matrix.database == 'oracle' |
|
run: | |
|
sudo apt-get install -y alien libaio1t64 libodbcinst2 unixodbc |
|
sudo rpm --import https://yum.oracle.com/RPM-GPG-KEY-oracle-ol8 |
|
wget https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient21/x86_64/getPackage/oracle-instantclient-{basic,odbc}-21.21.0.0.0-1.el8.x86_64.rpm |
|
sudo alien -i oracle-instantclient-basic-21.21.0.0.0-1.el8.x86_64.rpm |
|
sudo alien -i oracle-instantclient-odbc-21.21.0.0.0-1.el8.x86_64.rpm |
|
sudo ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/libaio.so.1 |
|
sudo /usr/lib/oracle/21/client64/bin/odbc_update_ini.sh / /usr/lib/oracle/21/client64/lib |
|
echo "LD_LIBRARY_PATH=/usr/lib/oracle/21/client64/lib:$LD_LIBRARY_PATH" >> "$GITHUB_ENV" |
- Replace the lint with a unified command
|
- run: cargo fmt --all -- --check |
|
- run: cargo clippy --all-targets --all-features -- -D warnings |
Continuing this thread in an issue so that we can merge the PR.
Nix has different tools for different situations. In this case, a development shell. It acts similar to a makefile and is completely opt in and fixes the lack of unified build command.
If we choose to opt the CI into using the flake then we can ::
SQLPage/.github/workflows/ci.yml
Lines 425 to 452 in f07c27f
SQLPage/.github/workflows/ci.yml
Lines 212 to 214 in f07c27f
SQLPage/.github/workflows/ci.yml
Lines 131 to 144 in f07c27f
SQLPage/.github/workflows/ci.yml
Lines 47 to 48 in f07c27f