diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index b2d880b..f3f99fd 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -12,9 +12,6 @@ jobs: name: Tests runs-on: ubuntu-20.04 steps: - - name: Diskspace before freeing - run: df . -h - - name: Free disk space run: | sudo rm -rf \ @@ -43,8 +40,33 @@ jobs: # sudo apt-get autoremove -y >/dev/null 2>&1 # sudo apt-get autoclean -y >/dev/null 2>&1 - - name: Diskspace after freeing - run: df . -h + - name: Restore Exasol image + id: cache-docker-exasol + uses: actions/cache@v3 + with: + path: ~/ci/cache/docker + key: cache-docker-exasol-7.0.22 + + - name: Store Exasol image if cache miss + if: steps.cache-docker-exasol.outputs.cache-hit != 'true' + run: docker pull exasol/docker-db:7.0.22 && mkdir -p ~/ci/cache/docker && docker image save exasol/docker-db:7.0.22 --output ~/ci/cache/docker/exasol-7.0.22.tar + + - name: Load Exasol image + run: docker image load --input ~/ci/cache/docker/exasol-7.0.22.tar + + - name: Restore Rust Image + id: cache-docker-rust + uses: actions/cache@v3 + with: + path: ~/ci/cache/docker + key: cache-docker-rust-1.72.0 + + - name: Store Rust image if cache miss + if: steps.cache-docker-rust.outputs.cache-hit != 'true' + run: docker pull rust:1.72.0 && mkdir -p ~/ci/cache/docker && docker image save rust:1.72.0 --output ~/ci/cache/docker/rust-1.72.0.tar + + - name: Load Rust image + run: docker image load --input ~/ci/cache/docker/rust-1.72.0.tar - name: Set up Python 3.10 uses: actions/setup-python@v3 @@ -61,24 +83,18 @@ jobs: repository: Exasol/docker-db ref: "7.0.22" - - name: Restore Exasol Image Cache if it exists - id: cache-docker-exasol - uses: actions/cache@v3 - with: - path: ~/ci/cache/docker - key: cache-docker-exasol-7.0.22 - - - name: Update Exasol Image Cache if cache miss - if: steps.cache-docker-exasol.outputs.cache-hit != 'true' - run: docker pull exasol/docker-db:7.0.22 && mkdir -p ~/ci/cache/docker && docker image save exasol/docker-db:7.0.22 --output ~/ci/cache/docker/exasol-7.0.22.tar - - name: Set up Exasol Cluster run: | - docker image load --input ~/ci/cache/docker/exasol-7.0.22.tar pipenv install -r exadt_requirements.txt - pipenv run ./exadt create-cluster --root ~/sqlx/ --create-root sqlx + pipenv run ./exadt create-cluster --root ~/sqlx --create-root sqlx pipenv run ./exadt init-cluster --image exasol/docker-db:7.0.22 --license ./license/license.xml --num-nodes 3 --auto-storage sqlx pipenv run ./exadt start-cluster sqlx + pipenv run ./exadt stop-cluster sqlx + + docker network create sqlx --subnet=10.10.10.0/16 + docker run --rm --privileged --detach --network=sqlx --ip 10.10.10.11 --hostname n11 --name sqlx_11 --label ClusterName=sqlx --label NodeID=11 --label Name=n11 -e EXA_NODE_ID=11 -v ~/sqlx/n11:/exa -v /run/udev:/run/udev -v /run/lvm:/run/lvm -v /lib/modules:/lib/modules --entrypoint /usr/opt/EXASuite-7/EXARuntime-7.0.22/bin/numactl exasol/docker-db:7.0.22 --interleave=all /usr/opt/EXASuite-7/EXAClusterOS-7.0.22/libexec/exainit.py + docker run --rm --privileged --detach --network=sqlx --ip 10.10.10.12 --hostname n12 --name sqlx_12 --label ClusterName=sqlx --label NodeID=12 --label Name=n12 -e EXA_NODE_ID=12 -v ~/sqlx/n12:/exa -v /run/udev:/run/udev -v /run/lvm:/run/lvm -v /lib/modules:/lib/modules --entrypoint /usr/opt/EXASuite-7/EXARuntime-7.0.22/bin/numactl exasol/docker-db:7.0.22 --interleave=all /usr/opt/EXASuite-7/EXAClusterOS-7.0.22/libexec/exainit.py + docker run --rm --privileged --detach --network=sqlx --ip 10.10.10.13 --hostname n13 --name sqlx_13 --label ClusterName=sqlx --label NodeID=13 --label Name=n13 -e EXA_NODE_ID=13 -v ~/sqlx/n13:/exa -v /run/udev:/run/udev -v /run/lvm:/run/lvm -v /lib/modules:/lib/modules --entrypoint /usr/opt/EXASuite-7/EXARuntime-7.0.22/bin/numactl exasol/docker-db:7.0.22 --interleave=all /usr/opt/EXASuite-7/EXAClusterOS-7.0.22/libexec/exainit.py - name: Create connection strings run: | @@ -87,20 +103,15 @@ jobs: echo "NO_TLS_URL=exa://sys:exasol@$EXA_IP:8563?ssl-mode=disabled" >> $GITHUB_ENV echo "TLS_URL=exa://sys:exasol@$EXA_IP:8563" >> $GITHUB_ENV - - name: Restore Rust Image Cache if it exists - id: cache-docker-rust - uses: actions/cache@v3 - with: - path: ~/ci/cache/docker - key: cache-docker-rust-1.72.0 - - - name: Update Rust Image Cache if cache miss - if: steps.cache-docker-rust.outputs.cache-hit != 'true' - run: docker pull rust:1.72.0 && mkdir -p ~/ci/cache/docker && docker image save rust:1.72.0 --output ~/ci/cache/docker/rust-1.72.0.tar - - uses: actions/checkout@v3 + - uses: Swatinem/rust-cache@v2 + + - run: sleep 300 - name: Run tests run: | - docker image load --input ~/ci/cache/docker/rust/rust-1.72.0.tar - docker run --rm --network=sqlx_priv -e DATABASE_URL=${{ env.TLS_URL }} -v "$PWD":/usr/src/sqlx-exasol -w /usr/src/sqlx-exasol rust:1.72.0 cargo test --features migrate,compression,etl_native_tls -- --ignored --nocapture --test-threads 4 + docker logs sqlx_11 + docker logs sqlx_12 + docker logs sqlx_13 + docker ps -a + docker run --rm --network=sqlx -e DATABASE_URL="exa://sys:exasol@10.10.10.11..13:8563" -v "$PWD":/usr/src/sqlx-exasol -w /usr/src/sqlx-exasol rust:1.72.0 cargo test --features migrate -- --nocapture