mirror of
https://github.com/rwf2/Rocket.git
synced 2025-01-10 03:29:07 +00:00
9314352eef
It seems Cargo generates so much data that the CI will occasionally fail due to running out of disk space. This change increases the available disk space by 20GB.
107 lines
3.9 KiB
YAML
107 lines
3.9 KiB
YAML
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
|
|
|
|
steps:
|
|
- name: Checkout Sources
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Free Disk Space
|
|
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 }}
|
|
|
|
- name: Run Tests
|
|
continue-on-error: ${{ matrix.fallible }}
|
|
run: ./scripts/test.sh ${{ matrix.test.flag }} -q
|
|
shell: bash
|