Allow for sqlite ecto #56
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 | |
sudo 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 | |
sudo dpkg -i fdb-server.deb | |
sudo 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: Install CockroachDB | |
run: | | |
curl -s https://binaries.cockroachdb.com/cockroach-v23.2.0-rc.1.linux-amd64.tgz | tar xvz | |
mkdir -p ${{ runner.temp }}/cockroach | |
cp cockroach-v23.2.0-rc.1.linux-amd64/cockroach ${{ runner.temp }}/cockroach/ | |
echo "${{ runner.temp }}/cockroach" >> $GITHUB_PATH | |
- name: Start CockroachDB | |
run: | | |
cockroach start-single-node --insecure --background | |
- name: Wait for CockroachDB to be ready | |
run: | | |
until cockroach sql --execute="SELECT 1" --insecure; do sleep 1; done | |
- name: Setup Database | |
run: MIX_ENV=test mix ecto.setup | |
- name: Run Seeds | |
run: MIX_ENV=test mix run priv/repo/test_seeds.exs | |
- 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 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 |