Allow for sqlite ecto #58
Workflow file for this run
This file contains 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: Uro Development x86_64 | |
on: | |
push: | |
branches: [master] | |
pull_request: | |
branches: [master] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
container: | |
image: hexpm/elixir:1.16.2-erlang-24.3.4.17-ubuntu-focal-20240216 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install system dependencies | |
run: | | |
apt update | |
apt install -y build-essential erlang-dev curl git | |
- name: Install foundationdb dependency | |
run: | | |
set -e | |
curl -L https://github.com/apple/foundationdb/releases/download/7.1.53/foundationdb-clients_7.1.53-1_amd64.deb --output fdb-client.deb | |
dpkg -i fdb-client.deb | |
curl -L https://github.com/apple/foundationdb/releases/download/7.1.53/foundationdb-server_7.1.53-1_amd64.deb --output fdb-server.deb | |
dpkg -i fdb-server.deb | |
apt update && sudo apt install -y libfuse3-dev execstack | |
- name: Setup Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
override: true | |
- name: Set up Elixir | |
run: | | |
mix local.hex --force | |
mix local.rebar --force | |
- name: Restore dependencies cache | |
uses: actions/cache@v2 | |
with: | |
path: deps | |
key: ${{ runner.os }}-mix-deps-${{ hashFiles('mix.lock') }} | |
restore-keys: ${{ runner.os }}-mix-deps- | |
- name: Install dependencies | |
run: mix deps.get | |
- name: Compile code | |
run: mix compile | |
- name: Run tests | |
continue-on-error: true | |
id: test_step | |
run: | | |
set -e | |
chmod +x ./rust_src/target/release/mvstore | |
export RUST_LOG=error | |
./rust_src/target/release/mvstore --data-plane 127.0.0.1:7000 --admin-api 127.0.0.1:7001 --metadata-prefix mvstore-test --raw-data-prefix m --auto-create-namespace --cluster /etc/foundationdb/fdb.cluster & | |
sleep 1 | |
curl http://localhost:7001/api/create_namespace -d '{"key":"uro_dev.sqlite3","metadata":""}' | |
sleep 1 | |
MIX_ENV=test mix ecto.setup | |
MIX_ENV=test mix run priv/repo/test_seeds.exs | |
mix test | tee test_output.txt; test ${PIPESTATUS[0]} -eq 0 | |
- name: Upload test results | |
uses: actions/upload-artifact@v2 | |
with: | |
name: test-results | |
path: test_output.txt | |
- name: Parse and check test results | |
if: always() | |
run: | | |
echo "Parsing test results..." | |
TEST_OUTPUT=$(grep -oP '\d+ tests, \K\d+(?= failures)' test_output.txt) | |
echo "TEST_FAILURES=$TEST_OUTPUT" >> $GITHUB_ENV | |
if [ "$TEST_OUTPUT" -le 102 ]; then | |
echo "Test failures are within the acceptable range." | |
else | |
echo "Too many test failures: $TEST_OUTPUT" | |
exit 1 | |
fi | |
- name: Check formatted code | |
run: mix format --check-formatted |