Merge branch 'SergioBenitez:master' into fix_issue_1224 #5
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: CI | |
on: [push, pull_request] | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
test: | |
name: "${{ matrix.platform.name }} ${{ matrix.test.name }} (${{ matrix.platform.toolchain }})" | |
runs-on: ${{ matrix.platform.distro }} | |
strategy: | |
fail-fast: false | |
matrix: | |
fallible: [false] | |
platform: | |
- { name: Linux, distro: ubuntu-latest, toolchain: stable } | |
- { name: Windows, distro: windows-latest, toolchain: stable } | |
- { name: macOS, distro: macOS-latest, toolchain: stable } | |
- { name: Linux, distro: ubuntu-latest, toolchain: nightly } | |
test: | |
- { name: Debug, flag: } | |
- { name: Contrib, flag: "--contrib" } | |
- { name: Examples, flag: "--examples" } | |
include: | |
- platform: { name: Linux, distro: ubuntu-latest, toolchain: nightly } | |
test: { name: Core, flag: "--core" } | |
- platform: { name: Linux, distro: ubuntu-latest, toolchain: stable } | |
test: { name: Release, flag: "--release" } | |
- platform: { name: Linux, distro: ubuntu-latest, toolchain: stable } | |
test: { name: UI, flag: "--ui" } | |
fallible: true | |
- platform: { name: Linux, distro: ubuntu-latest, toolchain: nightly } | |
test: { name: UI, flag: "--ui" } | |
fallible: true | |
- platform: { name: Windows } | |
working-directory: "C:\\a\\${{ github.event.repository.name }}\\${{ github.event.repository.name }}" | |
steps: | |
- name: Checkout Sources | |
uses: actions/checkout@v3 | |
- name: Free Disk Space (Linux) | |
if: matrix.platform.name == 'Linux' | |
run: | | |
echo "Freeing up disk space on Linux CI" | |
df -h | |
sudo rm -rf /usr/share/dotnet/ | |
sudo rm -rf /opt/ghc | |
sudo rm -rf /usr/local/share/boost | |
sudo rm -rf /usr/local/graalvm/ | |
sudo rm -rf /usr/local/.ghcup/ | |
sudo rm -rf /usr/local/share/powershell | |
sudo rm -rf /usr/local/share/chromium | |
sudo rm -rf /usr/local/lib/android | |
sudo rm -rf /usr/local/lib/node_modules | |
df -h | |
- name: Install Native Dependencies (macOS) | |
if: matrix.platform.name == 'macOS' | |
run: | | |
brew install mysql-client libpq sqlite coreutils | |
echo "/usr/local/opt/mysql-client/bin" >> "$GITHUB_PATH" | |
# vcpkg --triplet x64-windows install libmysql libpq sqlite3 openssl | |
# + vcpkg/installed/vcpkg (in particular, the status file) | |
- name: Install Native Dependencies (Windows) | |
if: matrix.platform.name == 'Windows' | |
run: | | |
curl -fsS -o vcpkg.7z https://rocket.rs/static/vcpkg-2019-07-05.7z | |
7z x vcpkg.7z -y -bb0 | |
xcopy .\vcpkg $env:VCPKG_INSTALLATION_ROOT /s /e /h /y /q | |
vcpkg integrate install | |
echo "VCPKGRS_DYNAMIC=1" >> "$env:GITHUB_ENV" | |
echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" >> "$env:GITHUB_ENV" | |
echo "$env:VCPKG_INSTALLATION_ROOT\installed\x64-windows\lib" >> "$env:GITHUB_PATH" | |
- name: Install Native Dependencies (Linux) | |
if: matrix.platform.name == 'Linux' | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y libmysqlclient-dev libpq-dev libsqlite3-dev | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@master | |
id: toolchain | |
with: | |
toolchain: ${{ matrix.platform.toolchain }} | |
components: rust-src | |
- name: Cache Example Workspace | |
if: matrix.test.name == 'Examples' | |
uses: Swatinem/rust-cache@v2 | |
with: | |
workspaces: examples | |
key: ${{ matrix.test.name }}-${{ steps.toolchain.outputs.cachekey }} | |
- name: Cache Root Workspace | |
if: matrix.test.name != 'Examples' | |
uses: Swatinem/rust-cache@v2 | |
with: | |
key: ${{ matrix.test.name }}-${{ steps.toolchain.outputs.cachekey }} | |
# Don't run out of disk space on Windows. C: has much much space than D:. | |
- name: Switch Disk (Windows) | |
if: matrix.platform.name == 'Windows' | |
run: | | |
Get-PSDrive | |
cp D:\a C:\ -Recurse | |
Get-PSDrive | |
- name: Run Tests | |
continue-on-error: ${{ matrix.fallible }} | |
working-directory: ${{ matrix.working-directory || github.workspace }} | |
run: ./scripts/test.sh ${{ matrix.test.flag }} -q | |
shell: bash |