Skip to content

Instrument RustyVault with Prometheus (#76) #211

Instrument RustyVault with Prometheus (#76)

Instrument RustyVault with Prometheus (#76) #211

Workflow file for this run

name: Rust
on:
push:
branches: [ "main" ]
paths-ignore:
- "docs/**/*"
- ".github/workflows/website.yml"
pull_request:
branches: [ "main" ]
paths-ignore:
- "docs/**/*"
- ".github/workflows/website.yml"
env:
CARGO_TERM_COLOR: always
TONGSUO_VERSION: 8.4.0
jobs:
unix-default-test:
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v3
- name: Build
run: cargo build --verbose
- name: ulimit -n
run: ulimit -n 65535
- name: Run tests
run: cargo test --verbose
- name: debug with ssh tunnel
if: ${{ failure() }}
uses: wa5i/ssh-to-actions@main
with:
SSH_PASSWORD: ${{ secrets.SSH_PASSWORD }}
NPS_SERVER: ${{ secrets.NPS_SERVER }}
NPS_VKEY: ${{ secrets.NPS_VKEY }}
unix-tongsuo-test:
strategy:
matrix:
os:
- macos-latest
- ubuntu-latest
runs-on: ${{matrix.os}}
steps:
- name: Build Tongsuo
run: |
wget "https://github.com/Tongsuo-Project/Tongsuo/archive/refs/tags/${TONGSUO_VERSION}.tar.gz"
tar zxf "${TONGSUO_VERSION}.tar.gz"
pushd "Tongsuo-${TONGSUO_VERSION}"
./config --prefix=${RUNNER_TEMP}/tongsuo --libdir=${RUNNER_TEMP}/tongsuo/lib
make -j4
make install
popd
- uses: actions/checkout@v3
- name: Configure the Cargo.toml to depend on the tongsuo library.
run : |
pwd
echo '[patch.crates-io]' >> ./Cargo.toml
echo 'openssl = { git = "https://github.com/Tongsuo-Project/rust-tongsuo.git" }' >> ./Cargo.toml
echo 'openssl-sys = { git = "https://github.com/Tongsuo-Project/rust-tongsuo.git" }' >> ./Cargo.toml
cargo update
- name: Build
run : |
export LD_LIBRARY_PATH=${RUNNER_TEMP}/tongsuo/lib
OPENSSL_DIR=${RUNNER_TEMP}/tongsuo RUSTFLAGS="-C link-args=-Wl,-rpath,${RUNNER_TEMP}/tongsuo/lib" cargo build --verbose --features crypto_adaptor_tongsuo --no-default-features
- name: Run tests
run : |
export LD_LIBRARY_PATH=${RUNNER_TEMP}/tongsuo/lib
OPENSSL_DIR=${RUNNER_TEMP}/tongsuo RUSTFLAGS="-C link-args=-Wl,-rpath,${RUNNER_TEMP}/tongsuo/lib" cargo test --verbose --features crypto_adaptor_tongsuo --no-default-features
- name: debug with ssh tunnel
if: ${{ failure() }}
uses: wa5i/ssh-to-actions@main
with:
SSH_PASSWORD: ${{ secrets.SSH_PASSWORD }}
NPS_SERVER: ${{ secrets.NPS_SERVER }}
NPS_VKEY: ${{ secrets.NPS_VKEY }}
unix-mysql-test:
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v3
- uses: shogo82148/actions-setup-mysql@v1
with:
mysql-version: "5.7"
root-password: "password"
my-cnf: |
skip-ssl
port=3306
- name: install diesel_cli
run: cargo install diesel_cli --no-default-features --features mysql
- name: init database
run: diesel setup --database-url mysql://root:password@127.0.0.1:3306/vault
- name: Build
run: cargo build --features storage_mysql --verbose
- name: ulimit -n
run: ulimit -n 65535
- name: Run tests
run: cargo test --verbose
- name: Build crate doc
run: cargo doc --no-deps
windows-default-test:
strategy:
matrix:
os:
- windows-latest
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v3
- run: echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" | Out-File -FilePath $env:GITHUB_ENV -Append
- name: install openssl
run: vcpkg install openssl:x64-windows-static-md
- name: Setup Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: Build
run: cargo build --verbose
- name: Run tests
run: cargo test --verbose
windows-mysql-test:
strategy:
matrix:
os:
- windows-latest
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v3
- run: echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" | Out-File -FilePath $env:GITHUB_ENV -Append
- name: install openssl
run: vcpkg install openssl:x64-windows-static-md
- name: Download MySQL Connector/C
run: |
Invoke-WebRequest -Uri "https://dev.mysql.com/get/Downloads/Connector-C/mysql-connector-c-6.1.11-winx64.msi" -OutFile "mysql-connector.msi"
- name: Install MySQL Connector/C
run: |
Start-Process msiexec.exe -ArgumentList '/i', 'mysql-connector.msi', '/quiet', '/norestart' -NoNewWindow -Wait
- name: Set MySQLCLIENT_LIB_DIR
run: echo "MYSQLCLIENT_LIB_DIR=C:\Program Files\MySQL\MySQL Connector C 6.1\lib\vs14" | Out-File -FilePath $env:GITHUB_ENV -Append
- name: Set MYSQLCLIENT_VERSION
run: echo "MYSQLCLIENT_VERSION=8.4.0" | Out-File -FilePath $env:GITHUB_ENV -Append
- uses: shogo82148/actions-setup-mysql@v1
with:
mysql-version: "5.7"
root-password: "password"
my-cnf: |
skip-ssl
port=3306
- name: Setup Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: install diesel_cli
run: cargo install diesel_cli --no-default-features --features mysql
- name: init database
run: diesel setup --database-url mysql://root:password@127.0.0.1:3306/vault
- name: Build
run: cargo build --features storage_mysql --verbose
- name: Run tests
run: cargo test --verbose
- name: Build crate doc
run: cargo doc --no-deps