name: Tests
on:
push:
branches: '*'
pull_request:
branches: [main]
env:
CARGO_TERM_COLOR: always
jobs:
build:
strategy:
matrix:
build: [stable, beta, nightly, macos, windows, msrv]
include:
- build: stable
os: ubuntu-latest
rust: stable
- build: beta
os: ubuntu-latest
rust: beta
- build: nightly
os: ubuntu-latest
rust: nightly
- build: macos
os: macos-latest
rust: stable
- build: windows
os: windows-latest
rust: stable
- build: msrv
os: ubuntu-20.04
rust: 1.70.0
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
lfs: true
- name: Set-up Toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- name: Windows Environment
run: 'echo OPENSSL_DIR="C:\\Program Files\\OpenSSL" > ${env:GITHUB_ENV}'
if: runner.os == 'Windows'
- name: Build
run: cargo +${{ matrix.rust }} build --verbose
- name: Run tests
run: cargo +${{ matrix.rust }} test --verbose --all
- name: Test executable
env:
KDBX_PASSWORD: asdf
run: cargo +${{ matrix.rust }} run -- testdata/dummy-kdbx41.kdbx
- name: Send a stream message
uses: zulip/github-actions-zulip/send-message@v1
if: always()
with:
api-key: ${{ secrets.ZULIP_API_KEY }}
email: "keepass-db-bot@penguin359.zulipchat.com"
organization-url: "https://penguin359.zulipchat.com"
to: "keepass-db"
type: "stream"
topic: "status"
content: "Build complete: ${{ job.status }}"