name: Build and test
on: [push, pull_request]
jobs:
win64:
name: Build Win64
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Install latests rust toolchain
uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af with:
toolchain: stable
target: x86_64-pc-windows-msvc
default: true
override: true
- name: Rust build cache
uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32
- name: Build
run: cargo build --release
win32:
name: Build Win32
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Install latests rust toolchain
uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af with:
toolchain: stable
target: i686-pc-windows-msvc
default: true
override: true
- name: Rust build cache
uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32
- name: Build
run: cargo build --release
osx:
name: Build OS-X
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Install unixODBC
run: |
brew install unixodbc
- name: Install latests rust toolchain
uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af with:
toolchain: stable
default: true
override: true
- name: Build
run: cargo build --release
linux:
name: Build & Test Linux
runs-on: ubuntu-latest
services:
sqlserver:
image: mcr.microsoft.com/mssql/server:2019-latest
ports:
- 1433:1433
env:
ACCEPT_EULA: Y
SA_PASSWORD: My@Test@Password1
mariadb:
image: mariadb
ports:
- 3306:3306
env:
MYSQL_ROOT_PASSWORD: my-secret-pw
MYSQL_DATABASE: test_db
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Install latest rust toolchain
uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 with:
toolchain: stable
- name: Install ODBC Drivers
run: |
sudo apt-get update
sudo apt-get install -y unixodbc-dev odbc-mariadb msodbcsql18 devscripts
- name: Print odbcinst.ini
run: cat /etc/odbcinst.ini
- name: Test
run: cargo test
dependabot:
needs: [linux, win64, osx, win32]
permissions:
pull-requests: write
contents: write
runs-on: ubuntu-latest
if: ${{ github.actor == 'dependabot[bot]' && github.event_name == 'pull_request'}}
steps:
- name: Merge Depenabot Pull Request
run: gh pr merge --auto --rebase "$PR_URL"
env:
PR_URL: ${{github.event.pull_request.html_url}}
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}