From d2671752bb8c0c43a4fbede318730b4e8e608195 Mon Sep 17 00:00:00 2001 From: Georg Semmler Date: Wed, 15 Jan 2020 12:37:43 +0100 Subject: [PATCH] Experimental ci with github actions If that actually works I'm proposing moving all of our ci/automation to this service, because of: * Integration with github seems to be vastly better + No need to click n times to go to logs + Rerun a failed job is easier + Maybe? Inline error messages in PR's * Error messages are automatically extracted * I think they have 20 free concurrent jobs, azure has only 10 (so faster CI) (Most of the config is copied from wundergraph) --- .github/workflows/audit.yml | 16 ++ .github/workflows/ci.yml | 372 ++++++++++++++++++++++++++++++++++++ azure-pipelines.yml | 252 ------------------------ 3 files changed, 388 insertions(+), 252 deletions(-) create mode 100644 .github/workflows/audit.yml create mode 100644 .github/workflows/ci.yml delete mode 100644 azure-pipelines.yml diff --git a/.github/workflows/audit.yml b/.github/workflows/audit.yml new file mode 100644 index 000000000000..f7c45b10a980 --- /dev/null +++ b/.github/workflows/audit.yml @@ -0,0 +1,16 @@ +name: Security audit +on: + push: + paths: + - '**/Cargo.toml' + - '**/Cargo.lock' + schedule: + - cron: '0 0 */7 * *' +jobs: + security_audit: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions-rs/audit-check@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000000..d2e7b9cf1e46 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,372 @@ +on: [pull_request] + +name: CI Tests + +jobs: + check_and_test: + name: Check + strategy: + matrix: + rust: ["stable", "beta", "nightly"] + backend: ["postgres", "sqlite", "mysql"] + os: [ubuntu-18.04, macos-latest, windows-latest] + runs-on: ${{ matrix.os }} + steps: + - name: Checkout sources + uses: actions/checkout@v1 + + - name: Cache cargo registry + uses: actions/cache@v1 + with: + path: ~/.cargo/registry + key: ${{ runner.os }}-${{ matrix.backend }}-cargo-registry-${{ hashFiles('**/Cargo.toml') }} + + - name: Cache cargo index + uses: actions/cache@v1 + with: + path: ~/.cargo/git + key: ${{ runner.os }}-${{ matrix.backend }}-cargo-index-${{ hashFiles('**/Cargo.toml') }} + + - name: Set environment variables + shell: bash + if: matrix.backend == 'mysql' + run: | + echo '::set-env name=RUST_TEST_THREADS::1' + + - name: Set environment variables + shell: bash + if: matrix.rust == 'nightly' + run: + echo '::set-env name=RUSTFLAGS::--cap-lints=warn' + + - name: Install postgres (Linux) + if: runner.os == 'Linux' && matrix.backend == 'postgres' + run: | + sudo apt-get update + sudo apt-get install -y libpq-dev postgresql + echo "host all all 127.0.0.1/32 md5" > sudo tee -a /etc/postgresql/10/main/pg_hba.conf + sudo service postgresql restart && sleep 3 + sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';" + sudo service postgresql restart && sleep 3 + echo '::set-env name=PG_DATABASE_URL::postgres://postgres:postgres@localhost/' + echo '::set-env name=PG_EXAMPLE_DATABASE_URL::postgres://postgres:postgres@localhost/diesel_example' + + - name: Install sqlite (Linux) + if: runner.os == 'Linux' && matrix.backend == 'sqlite' + run: | + sudo apt-get update && sudo apt-get install -y libsqlite3-dev sqlite3 + echo '::set-env name=SQLITE_DATABASE_URL::/tmp/test.db' + + - name: Install mysql (Linux) + if: runner.os == 'Linux' && matrix.backend == 'mysql' + run: | + sudo apt-get update + sudo apt-get -y install mysql-server libmysqlclient-dev + mysql -e "create database diesel_test; create database diesel_unit_test; grant all on \`diesel_%\`.* to 'root'@'localhost';" -uroot -proot + echo '::set-env name=MYSQL_DATABASE_URL::mysql://root:root@localhost/diesel_test' + echo '::set-env name=MYSQL_EXAMPLE_DATABASE_URL::mysql://root:root@localhost/diesel_example' + echo '::set-env name=MYSQL_UNIT_TEST_DATABASE_URL::mysql://root:root@localhost/diesel_unit_test' + + - name: Install postgres (MacOs) + if: runner.os == 'macOS' && matrix.backend == 'postgres' + run: | + brew update + brew install postgres + /usr/local/opt/postgres/bin/pg_ctl -D /usr/local/var/postgres start + sleep 3 + /usr/local/opt/postgres/bin/createuser -s postgres + echo '::set-env name=PG_DATABASE_URL::postgres://postgres@localhost/' + echo '::set-env name=PG_EXAMPLE_DATABASE_URL::postgres://postgres@localhost/diesel_example' + + - name: Install sqlite (MacOS) + if: runner.os == 'macOS' && matrix.backend == 'sqlite' + run: | + brew update + brew install sqlite + echo '::set-env name=SQLITE_DATABASE_URL::/tmp/test.db' + + - name: Install mysql (MacOS) + if: runner.os == 'macOS' && matrix.backend == 'mysql' + run: | + brew update && + brew install mysql && + brew services start mysql && + brew services stop mysql;sleep 3;brew services start mysql && + sleep 2 && + /usr/local/Cellar/mysql/8.0.19/bin/mysql -e "create database diesel_test; create database diesel_unit_test; grant all on \`diesel_%\`.* to 'root'@'localhost';" -uroot + echo '::set-env name=MYSQL_DATABASE_URL::mysql://root@localhost/diesel_test' + echo '::set-env name=MYSQL_EXAMPLE_DATABASE_URL::mysql://root@localhost/diesel_example' + echo '::set-env name=MYSQL_UNIT_TEST_DATABASE_URL::mysql://root@localhost/diesel_unit_test' + echo '::set-env name=MYSQLCLIENT_LIB_DIR::/usr/local/Cellar/mysql/8.0.19/lib' + + - name: Install sqlite (Windows) + if: runner.os == 'Windows' && matrix.backend == 'sqlite' + shell: cmd + run: | + choco install sqlite + cd /D C:\ProgramData\chocolatey\lib\SQLite\tools + call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + lib /machine:x64 /def:sqlite3.def /out:sqlite3.lib + echo ::add-path::C:\ProgramData\chocolatey\lib\SQLite\tools + echo ::set-env name=SQLITE3_LIB_DIR::C:\ProgramData\chocolatey\lib\SQLite\tools + echo ::set-env name=SQLITE_DATABASE_URL::C:\test.db + + - name: Install postgres (Windows) + if: runner.os == 'Windows' && matrix.backend == 'postgres' + shell: bash + run: | + choco install postgresql12 --force --params '/Password:postgres' + echo '::add-path::C:\Program Files\PostgreSQL\12\bin' + echo '::add-path::C:\Program Files\PostgreSQL\12\lib' + echo '::set-env name=PQ_LIB_DIR::C:\Program Files\PostgreSQL\12\lib' + echo '::set-env name=PG_DATABASE_URL::postgres://postgres:password@localhost/' + echo '::set-env name=PG_EXAMPLE_DATABASE_URL::postgres://postgres:password@localhost/diesel_example' + + - name: Install mysql (Windows) + if: runner.os == 'Windows' && matrix.backend == 'mysql' + shell: cmd + run: | + choco install mysql + "C:\tools\mysql\current\bin\mysql" -e "create database diesel_test; create database diesel_unit_test; grant all on \`diesel_%\`.* to 'root'@'localhost';" -uroot + echo ::set-env name=MYSQL_DATABASE_URL::mysql://root:password@localhost/diesel_test + echo ::set-env name=MYSQL_EXAMPLE_DATABASE_URL::mysql://root:password@localhost/diesel_example + echo ::set-env name=MYSQL_UNIT_TEST_DATABASE_URL::mysql://root:password@localhost/diesel_unit_test + echo ::set-env name=MYSQLCLIENT_LIB_DIR::"C:\tools\mysql\current\lib\" + + - name: Check enviroment + if: runner.os == 'Windows' && matrix.backend == 'mysql' + shell: bash + run: | + echo $MYSQLCLIENT_LIB_DIR + ls "$MYSQLCLIENT_LIB_DIR" + + + - name: Install rust toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: ${{ matrix.rust }} + override: true + + - name: Test diesel (nightly) + if: matrix.rust == 'nightly' + uses: actions-rs/cargo@v1 + with: + command: test + args: --manifest-path diesel/Cargo.toml --no-default-features --features "${{ matrix.backend }} unstable extras" + + - name: Test diesel + if: matrix.rust != 'nightly' + uses: actions-rs/cargo@v1 + with: + command: test + args: --manifest-path diesel/Cargo.toml --no-default-features --features "${{ matrix.backend }} extras" + + - name: Test diesel (with-deprecated) + uses: actions-rs/cargo@v1 + with: + command: test + args: --manifest-path diesel/Cargo.toml --no-default-features --features "${{ matrix.backend }} extras with-deprecated" + + - name: Test diesel-derives (nightly) + if: matrix.rust == 'nightly' + uses: actions-rs/cargo@v1 + with: + command: test + args: --manifest-path diesel_derives/Cargo.toml --no-default-features --features "diesel/${{ matrix.backend }} diesel/unstable" + + - name: Test diesel-derives (nightly) + uses: actions-rs/cargo@v1 + with: + command: test + args: --manifest-path diesel_derives/Cargo.toml --no-default-features --features "diesel/${{ matrix.backend }}" + + - name: Test diesel-cli + uses: actions-rs/cargo@v1 + with: + command: test + args: --manifest-path diesel_cli/Cargo.toml --no-default-features --features "${{ matrix.backend }}" + + - name: Test diesel examples + shell: bash + run: | + (cd examples/${{matrix.backend}} && ./test_all) + + - name: Test migrations-internals + uses: actions-rs/cargo@v1 + with: + command: test + args: --manifest-path diesel_migrations/migrations_internals/Cargo.toml + + - name: Test migrations-macros + uses: actions-rs/cargo@v1 + with: + command: test + args: --manifest-path diesel_migrations/migrations_macros/Cargo.toml + + - name: Test diesel_migrations + uses: actions-rs/cargo@v1 + with: + command: test + args: --manifest-path diesel_migrations/Cargo.toml --features "${{ matrix.backend }}" + + - name: Run diesel_tests (nightly) + if: matrix.run == 'nightly' + uses: actions-rs/cargo@v1 + with: + command: test + args: --manifest-path diesel_tests/Cargo.toml --no-default-features --features "${{ matrix.backend }} unstable" + + - name: Run diesel_tests + if: matrix.run != 'nightly' + uses: actions-rs/cargo@v1 + with: + command: test + args: --manifest-path diesel_tests/Cargo.toml --no-default-features --features "${{ matrix.backend }}" + + - name: Run rustdoc (nightly) + if: matrix.run == 'nightly' + uses: actions-rs/cargo@v1 + with: + command: doc + args: --manifest-path diesel/Cargo.toml --no-deps --no-default-features --features "${{ matrix.backend }} unstable" + + - name: Run rustdoc + if: matrix.run != 'nightly' + uses: actions-rs/cargo@v1 + with: + command: doc + args: --manifest-path diesel/Cargo.toml --no-deps --no-default-features --features "${{ matrix.backend }}" + + compile_tests: + name: Compiletests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions-rs/toolchain@v1 + with: + toolchain: nightly-2019-08-01 + profile: minimal + override: true + - name: Cache cargo registry + uses: actions/cache@v1 + with: + path: ~/.cargo/registry + key: compile_test-cargo-registry-${{ hashFiles('**/Cargo.toml') }} + - name: Cache cargo index + uses: actions/cache@v1 + with: + path: ~/.cargo/git + key: compile_test-cargo-index-${{ hashFiles('**/Cargo.toml') }} + + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get -y install libsqlite3-dev libpq-dev libmysqlclient-dev + + - name: Run compile tests + uses: actions-rs/cargo@v1 + with: + command: test + args: --manifest-path diesel_compile_tests/Cargo.toml + + rustfmt_and_clippy: + name: Check rustfmt style && run clippy + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions-rs/toolchain@v1 + with: + toolchain: 1.37.0 + profile: minimal + components: clippy, rustfmt + override: true + - name: Cache cargo registry + uses: actions/cache@v1 + with: + path: ~/.cargo/registry + key: clippy-cargo-registry-${{ hashFiles('**/Cargo.toml') }} + - name: Cache cargo index + uses: actions/cache@v1 + with: + path: ~/.cargo/git + key: clippy-cargo-index-${{ hashFiles('**/Cargo.toml') }} + + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get -y install libsqlite3-dev libpq-dev libmysqlclient-dev + + - name: Run clippy + uses: actions-rs/cargo@v1 + with: + command: clippy + + - name: Check formating + uses: actions-rs/cargo@v1 + with: + command: fmt + args: --all -- --check + + sqlite_bundled: + name: Check sqlite bundled + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + profile: minimal + override: true + - name: Cache cargo registry + uses: actions/cache@v1 + with: + path: ~/.cargo/registry + key: sqlite_bundled-cargo-registry-${{ hashFiles('**/Cargo.toml') }} + - name: Cache cargo index + uses: actions/cache@v1 + with: + path: ~/.cargo/git + key: sqlite_bundled-cargo-index-${{ hashFiles('**/Cargo.toml') }} + + - name: Setup environment + run: | + echo '::set-env name=SQLITE_DATABASE_URL::/tmp/test.db' + + - name: Test diesel-cli + uses: actions-rs/cargo@v1 + with: + command: test + args: --manifest-path diesel_cli/Cargo.toml --no-default-features --features "sqlite-bundled" + + minimal_rust_version: + name: Check Minimal supported rust version (1.37.0) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions-rs/toolchain@v1 + with: + toolchain: 1.37.0 + profile: minimal + override: true + - name: Cache cargo registry + uses: actions/cache@v1 + with: + path: ~/.cargo/registry + key: minimal_rust_version-cargo-registry-${{ hashFiles('**/Cargo.toml') }} + - name: Cache cargo index + uses: actions/cache@v1 + with: + path: ~/.cargo/git + key: minimal_rust_version-cargo-index-${{ hashFiles('**/Cargo.toml') }} + + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get -y install libsqlite3-dev libpq-dev libmysqlclient-dev + + - name: Check building with rust 1.36.0 + uses: actions-rs/cargo@v1 + with: + command: check + args: --all diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index 60a9ab919019..000000000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,252 +0,0 @@ -trigger: ["master"] -pr: ["master"] - - -jobs: -- template: _build/azure-pipelines-template.yml - parameters: - name: macOS_sqlite - displayName: macOS SQLite - vmImage: macOS-10.13 - variables: - BACKEND: sqlite - SQLITE_DATABASE_URL: /tmp/test.db - setup: - - bash: | - brew update && - brew install sqlite - displayName: Install sqlite - -- template: _build/azure-pipelines-template.yml - parameters: - name: macOS_postgres - displayName: macOS PostgreSQL - vmImage: macOS-10.13 - variables: - BACKEND: postgres - PG_DATABASE_URL: postgres://postgres@localhost/ - PG_EXAMPLE_DATABASE_URL: postgres://postgres@localhost/diesel_example - setup: - - bash: | - brew update && - brew install postgres && - brew services start postgres && - sleep 3 && - /usr/local/opt/postgres/bin/createuser -s postgres - displayName: Install postgresql - -- template: _build/azure-pipelines-template.yml - parameters: - name: macOS_mysql - displayName: macOS MySQL - vmImage: macOS-10.13 - variables: - BACKEND: mysql - MYSQL_DATABASE_URL: mysql://root@localhost/diesel_test - MYSQL_EXAMPLE_DATABASE_URL: mysql://root@localhost/diesel_example - MYSQL_UNIT_TEST_DATABASE_URL: mysql://root@localhost/diesel_unit_test - RUST_TEST_THREADS: 1 - MYSQLCLIENT_LIB_DIR: /usr/local/Cellar/mysql/8.0.19/lib - setup: - - bash: | - brew update && - brew install mysql && - brew services start mysql && - brew services stop mysql;sleep 3;brew services start mysql && - sleep 2 && - /usr/local/Cellar/mysql/8.0.19/bin/mysql -e "create database diesel_test; create database diesel_unit_test; grant all on \`diesel_%\`.* to 'root'@'localhost';" -uroot - displayName: Install mysql - -- template: _build/azure-pipelines-template.yml - parameters: - name: Linux_sqlite - displayName: Linux SQLite - vmImage: ubuntu-16.04 - variables: - BACKEND: sqlite - SQLITE_DATABASE_URL: /tmp/test.db - setup: - - bash: | - sudo apt-get update && - sudo apt-get -y install sqlite3 libsqlite3-dev - displayName: Install sqlite - -- template: _build/azure-pipelines-template.yml - parameters: - name: Linux_postgres - displayName: Linux PostgreSQL - vmImage: ubuntu-16.04 - variables: - BACKEND: postgres - PG_DATABASE_URL: postgres://postgres:postgres@localhost/ - PG_EXAMPLE_DATABASE_URL: postgres://postgres:postgres@localhost/diesel_example - setup: - - bash: | - sudo apt-get update && - sudo apt-get -y install postgresql libpq-dev && - echo "host all all 127.0.0.1/32 md5" > sudo tee -a /etc/postgresql/9.5/main/pg_hba.conf && - sudo service postgresql restart && sleep 3 && - sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';" && - sudo service postgresql restart && sleep 3 - displayName: Install postgresql - -- template: _build/azure-pipelines-template.yml - parameters: - name: Linux_mysql - displayName: Linux MySQL - vmImage: ubuntu-16.04 - variables: - BACKEND: mysql - MYSQL_DATABASE_URL: mysql://root:root@localhost/diesel_test - MYSQL_EXAMPLE_DATABASE_URL: mysql://root:root@localhost/diesel_example - MYSQL_UNIT_TEST_DATABASE_URL: mysql://root:root@localhost/diesel_unit_test - RUST_TEST_THREADS: 1 - setup: - - bash: | - sudo apt-get update && - sudo apt-get -y install mysql-server libmysqlclient-dev && - mysql -e "create database diesel_test; create database diesel_unit_test; grant all on \`diesel_%\`.* to 'root'@'localhost';" -uroot -proot - displayName: Install mysql - -- template: _build/azure-pipelines-template.yml - parameters: - name: Windows_sqlite - displayName: Windows SQLite - vmImage: vs2017-win2016 - variables: - BACKEND: sqlite - SQLITE_DATABASE_URL: C:\test.db - SQLITE3_LIB_DIR: C:\sqlite - setup: - - script: | - choco install 7zip - mkdir C:\sqlite - CD /D C:\sqlite - curl -fsS --retry 3 --retry-connrefused -o sqlite3.zip https://sqlite.org/2017/sqlite-dll-win64-x64-3160200.zip - 7z e sqlite3.zip -y - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" - lib /machine:x64 /def:sqlite3.def /out:sqlite3.lib - set PATH=%PATH%;C:\sqlite - echo "##vso[task.setvariable variable=PATH;]%PATH%;C:\sqlite" - displayName: Install sqlite - -- template: _build/azure-pipelines-template.yml - parameters: - name: Windows_postgres - displayName: Windows PostgreSQL - vmImage: vs2017-win2016 - variables: - BACKEND: postgres - PG_DATABASE_URL: postgres://postgres:password@localhost/ - PG_EXAMPLE_DATABASE_URL: postgres://postgres:password@localhost/diesel_example - PQ_LIB_DIR: C:\Program Files\PostgreSQL\10\lib - setup: - - script: | - choco install postgresql10 --force --params '/Password:password' - set PATH=%PATH%;C:\Program Files\PostgreSQL\10\bin;C:\Program Files\PostgreSQL\10\lib" - echo "##vso[task.setvariable variable=PATH;]%PATH%;C:\Program Files\PostgreSQL\10\bin;C:\Program Files\PostgreSQL\10\lib" - displayName: Install postgresql - -- template: _build/azure-pipelines-template.yml - parameters: - name: Windows_mysql - displayName: Windows MySQL - vmImage: vs2017-win2016 - variables: - BACKEND: mysql - MYSQL_DATABASE_URL: mysql://root:password@localhost/diesel_test - MYSQL_EXAMPLE_DATABASE_URL: mysql://root:password@localhost/diesel_example - MYSQL_UNIT_TEST_DATABASE_URL: mysql://root:password@localhost/diesel_unit_test - RUST_TEST_THREADS: 1 - MYSQLCLIENT_LIB_DIR: C:\Program Files\MySQL\MySQL Server 8.0\lib - setup: - - script: | - choco install 7zip - mkdir C:\mysql - CD /D C:\mysql - curl -fsS --retry 3 --retry-connrefused -o mysql.msi https://cdn.mysql.com/archives/mysql-installer/mysql-installer-community-8.0.11.0.msi - msiexec /q /log install.txt /i mysql.msi datadir=C:\mysql installdir=C:\mysql - call "C:\Program Files (x86)\MySQL\MySQL Installer for Windows\MySQLInstallerConsole.exe" community install server;8.0.11;x64:*:port=3306;rootpasswd=password;servicename=MySQL -silent - netsh advfirewall firewall add rule name="Allow mysql" dir=in action=allow edge=yes remoteip=any protocol=TCP localport=80,8080,3306 - "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql" -e "create database diesel_test; create database diesel_unit_test; grant all on diesel_test.* to 'root'@localhost; grant all on diesel_unit_test.* to 'root'@localhost;" -uroot -ppassword - displayName: Install mysql - -- job: COMPILE_TESTS - displayName: Compiletests - pool: - vmImage: ubuntu-16.04 - steps: - - template: _build/install-rust.yml - parameters: - platform: Linux - rust_version: nightly-2019-08-01 - - bash: | - sudo apt-get update && - sudo apt-get -y install libsqlite3-dev libpq-dev libmysqlclient-dev - displayName: Install build dependencies - - bash: | - (cd diesel_compile_tests && cargo test) - env: - RUSTFLAGS: '--cap-lints=warn' - displayName: Run compile tests - -- job: RUSTFMT_AND_CLIPPY - displayName: Check rustfmt style && run clippy - pool: - vmImage: ubuntu-16.04 - steps: - - template: _build/install-rust.yml - parameters: - platform: Linux - rust_version: 1.36.0 - - bash: | - sudo apt-get update && - sudo apt-get -y install libsqlite3-dev libpq-dev libmysqlclient-dev - displayName: Install build dependencies - - bash: | - rustup component add rustfmt - displayName: Install rustfmt - - bash: | - rustup component add clippy - displayName: Install clippy - - bash: | - cargo clippy - displayName: Run clippy - - bash: | - cargo fmt --all -- --check - displayName: Check style - -- job: SQLITE_BUNDLED - displayName: Check sqlite bundled - pool: - vmImage: ubuntu-16.04 - steps: - - template: _build/install-rust.yml - parameters: - platform: Linux - rust_version: stable - - bash: | - sudo apt-get update && - sudo apt-get -y install sqlite3 libsqlite3-dev - - bash: | - (cd diesel_cli && cargo test --no-default-features --features "sqlite-bundled") - env: - SQLITE_DATABASE_URL: /tmp/test.db - displayName: Check sqlite bundled - -- job: MINIMAL_RUST_VERSION - displayName: Check minimal supported rust version - pool: - vmImage: ubuntu-16.04 - steps: - - template: _build/install-rust.yml - parameters: - platform: Linux - rust_version: 1.36.0 - - bash: | - sudo apt-get update && - sudo apt-get -y install libsqlite3-dev libpq-dev libmysqlclient-dev - displayName: Install build dependencies - - bash: | - cargo check --all - displayName: Check building with rust 1.36.0