1313 runs-on : ubuntu-latest
1414
1515 steps :
16- - uses : actions/checkout@v5
16+ - uses : actions/checkout@v6
1717
1818 - uses : dtolnay/rust-toolchain@stable
19+ with :
20+ components : rustfmt, clippy
1921
2022 - name : Cache Rust dependencies
2123 uses : Swatinem/rust-cache@v2
2527 with :
2628 repo-token : ${{ secrets.GITHUB_TOKEN }}
2729
30+ - name : Check formatting
31+ run : cargo fmt --all -- --check
32+
2833 - run : cargo clippy --all-features -- -D warnings
2934
3035 build :
4247 - ' mysql'
4348 - ' flight'
4449 - ' adbc'
50+ - ' mongodb'
4551
4652 steps :
47- - uses : actions/checkout@v5
53+ - uses : actions/checkout@v6
4854
4955 - uses : dtolnay/rust-toolchain@stable
5056
@@ -65,20 +71,37 @@ jobs:
6571
6672 env :
6773 PG_DOCKER_IMAGE : ghcr.io/cloudnative-pg/postgresql:16-bookworm
68- MYSQL_DOCKER_IMAGE : public.ecr.aws/ubuntu/ mysql:8.0-22.04_beta
74+ MYSQL_DOCKER_IMAGE : mysql:8.0
6975
7076 steps :
71- - uses : actions/checkout@v5
77+ - uses : actions/checkout@v6
7278
7379 - uses : dtolnay/rust-toolchain@stable
7480
7581 - name : Cache Rust dependencies
7682 uses : Swatinem/rust-cache@v2
7783
78- - name : Pull the Postgres/MySQL images
84+ - name : Cache Docker images
85+ id : docker-cache
86+ uses : actions/cache@v4
87+ with :
88+ path : /tmp/docker-images
89+ key : docker-images-${{ env.PG_DOCKER_IMAGE }}-${{ env.MYSQL_DOCKER_IMAGE }}
90+
91+ - name : Load or pull Docker images
7992 run : |
80- docker pull ${{ env.PG_DOCKER_IMAGE }}
81- docker pull ${{ env.MYSQL_DOCKER_IMAGE }}
93+ if [ -f /tmp/docker-images/postgres.tar ] && [ -f /tmp/docker-images/mysql.tar ]; then
94+ echo "Loading cached Docker images..."
95+ docker load -i /tmp/docker-images/postgres.tar
96+ docker load -i /tmp/docker-images/mysql.tar
97+ else
98+ echo "Pulling Docker images..."
99+ docker pull ${{ env.PG_DOCKER_IMAGE }}
100+ docker pull ${{ env.MYSQL_DOCKER_IMAGE }}
101+ mkdir -p /tmp/docker-images
102+ docker save -o /tmp/docker-images/postgres.tar ${{ env.PG_DOCKER_IMAGE }}
103+ docker save -o /tmp/docker-images/mysql.tar ${{ env.MYSQL_DOCKER_IMAGE }}
104+ fi
82105
83106 - name : Free Disk Space
84107 run : |
88111 /usr/local/share/powershell /usr/share/swift /usr/local/.ghcup \
89112 /usr/lib/jvm || true
90113 echo "some directories deleted"
91- sudo apt install aptitude -y >/dev/null 2>&1
114+ sudo apt-get update >/dev/null 2>&1
115+ sudo apt install aptitude -y >/dev/null 2>&1 || true
92116 sudo aptitude purge aria2 ansible azure-cli shellcheck rpm xorriso zsync \
93117 esl-erlang firefox gfortran-8 gfortran-9 google-chrome-stable \
94118 google-cloud-sdk imagemagick \
@@ -98,14 +122,14 @@ jobs:
98122 libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev \
99123 snmp pollinate libpq-dev postgresql-client powershell ruby-full \
100124 sphinxsearch subversion mongodb-org azure-cli microsoft-edge-stable \
101- -y -f >/dev/null 2>&1
102- sudo aptitude purge google-cloud-sdk -f -y >/dev/null 2>&1
125+ -y -f >/dev/null 2>&1 || true
126+ sudo aptitude purge google-cloud-sdk -f -y >/dev/null 2>&1 || true
103127 sudo aptitude purge microsoft-edge-stable -f -y >/dev/null 2>&1 || true
104128 sudo apt purge microsoft-edge-stable -f -y >/dev/null 2>&1 || true
105- sudo aptitude purge '~n ^php' -f -y >/dev/null 2>&1
106- sudo aptitude purge '~n ^dotnet' -f -y >/dev/null 2>&1
107- sudo apt-get autoremove -y >/dev/null 2>&1
108- sudo apt-get autoclean -y >/dev/null 2>&1
129+ sudo aptitude purge '~n ^php' -f -y >/dev/null 2>&1 || true
130+ sudo aptitude purge '~n ^dotnet' -f -y >/dev/null 2>&1 || true
131+ sudo apt-get autoremove -y >/dev/null 2>&1 || true
132+ sudo apt-get autoclean -y >/dev/null 2>&1 || true
109133 echo "some packages purged"
110134 df -h
111135
@@ -128,7 +152,7 @@ jobs:
128152 runs-on : ubuntu-latest
129153
130154 steps :
131- - uses : actions/checkout@v5
155+ - uses : actions/checkout@v6
132156
133157 - uses : dtolnay/rust-toolchain@stable
134158
@@ -148,7 +172,7 @@ jobs:
148172 run : |
149173 sudo apt-get install -y unixodbc-dev libsqliteodbc
150174 sudo apt-get install -y libsqlite3-dev
151- cargo install --locked --git https://github.com/roapi/roapi --branch main --bins roapi
175+ RUSTUP_TOOLCHAIN=stable cargo install --git https://github.com/roapi/roapi --branch main --bins roapi
152176
153177 - name : Build Python package and run tests
154178 run : |
0 commit comments