Skip to content

CI improvements

CI improvements #105

Workflow file for this run

# yaml-language-server: $schema=./main.yaml
name: CI
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
jobs:
tests:
name: Tests
runs-on: ubuntu-20.04
steps:
- name: Free disk space
run: |
sudo rm -rf \
/usr/share/dotnet /usr/local/lib/android /opt/ghc \
/usr/local/share/powershell /usr/share/swift /usr/local/.ghcup \
/usr/lib/jvm || true
# sudo apt install aptitude -y >/dev/null 2>&1
# sudo aptitude purge aria2 ansible azure-cli shellcheck rpm xorriso zsync \
# esl-erlang firefox gfortran-8 gfortran-9 google-chrome-stable \
# google-cloud-sdk imagemagick \
# libmagickcore-dev libmagickwand-dev libmagic-dev ant ant-optional kubectl \
# mercurial apt-transport-https mono-complete libmysqlclient \
# unixodbc-dev yarn chrpath libssl-dev libxft-dev \
# libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev \
# snmp pollinate libpq-dev postgresql-client powershell ruby-full \
# sphinxsearch subversion mongodb-org azure-cli microsoft-edge-stable \
# -y -f >/dev/null 2>&1
# sudo aptitude purge google-cloud-sdk -f -y >/dev/null 2>&1
# sudo aptitude purge microsoft-edge-stable -f -y >/dev/null 2>&1 || true
# sudo apt purge microsoft-edge-stable -f -y >/dev/null 2>&1 || true
# sudo aptitude purge '~n ^mysql' -f -y >/dev/null 2>&1
# sudo aptitude purge '~n ^php' -f -y >/dev/null 2>&1
# sudo aptitude purge '~n ^dotnet' -f -y >/dev/null 2>&1
# sudo apt-get autoremove -y >/dev/null 2>&1
# sudo apt-get autoclean -y >/dev/null 2>&1
- 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
with:
python-version: "3.10"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pipenv
- uses: actions/checkout@v3
with:
repository: Exasol/docker-db
ref: "7.0.22"
- name: Set up Exasol Cluster
run: |
pipenv install -r exadt_requirements.txt
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
- name: Create connection strings
run: |
CONTAINER_ID=`docker ps --format "table {{.ID}}\t" | head -2 | tail -1`
EXA_IP=`docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $CONTAINER_ID`
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
- uses: actions/checkout@v3
- uses: Swatinem/rust-cache@v2
- name: Run tests
run: |
docker run --rm --network=sqlx_priv -e DATABASE_URL="exa://sys:exasol@sqlx_11..13:8563" -v "$PWD":/usr/src/sqlx-exasol -w /usr/src/sqlx-exasol rust:1.72.0 cargo test --features migrate -- --nocapture || true
docker logs sqlx_11
docker logs sqlx_12
docker logs sqlx_13