Skip to content

Test

Test #285

Workflow file for this run

name: Test
on:
push:
branches: [main]
pull_request:
release:
types: [published]
schedule:
- cron: '25 3 * * *'
env:
CARGO_TERM_COLOR: always
jobs:
build-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: ${{ github.event.schedule && 'nightly' || 'stable' }}
- name: Build
run: cargo build --verbose
- name: Run tests
run: cargo test --verbose
coverage:
runs-on: ubuntu-latest
container:
image: xd009642/tarpaulin:develop
options: --security-opt seccomp=unconfined
steps:
- uses: actions/checkout@v3
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: ${{ github.event.schedule && 'nightly' || 'stable' }}
- name: Generate code coverage
run: cargo tarpaulin --all-features --workspace --timeout 120 --out xml
- uses: codecov/codecov-action@v3
with:
fail_ci_if_error: true
build-debian-10:
runs-on: ubuntu-latest
container: debian:10
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
apt-get update
apt-get -y install build-essential dpkg-dev ca-certificates sudo curl
apt-get -y build-dep .
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: ${{ github.event.schedule && 'nightly' || 'stable' }}
- name: Build
run: cargo build --verbose
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: ${{ github.event.schedule && 'nightly' || 'stable' }}
- run: rustup component add clippy
- name: rust-clippy-check
uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
build-debian-package:
runs-on: ubuntu-latest
container: debian:10
steps:
- uses: actions/checkout@v3
with:
path: clone
- name: Install dependencies
run: |
apt-get update
apt-get install -y build-essential dpkg-dev ca-certificates sudo curl
cd clone
apt-get build-dep -y .
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: ${{ github.event.schedule && 'nightly' || 'stable' }}
- name: Build package
run: |
debian/rules vendor
dpkg-buildpackage --no-sign
working-directory: clone
- uses: actions/upload-artifact@v3
with:
name: deb-package
path: |
./*
!./clone/**
run-ci-ubuntu-latest:
runs-on: ubuntu-latest
needs: [build-debian-package]
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: deb-package
- name: CI
run: ci/test.sh
env:
HAVE_SYSTEMD: "1"
run-ci-debian-10:
runs-on: ubuntu-latest
container: debian:10
needs: [build-debian-package]
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
apt-get update
apt-get -y install build-essential
- uses: actions/download-artifact@v3
with:
name: deb-package
- name: CI
run: ci/test.sh
env:
HAVE_SYSTEMD: "0"
create-release:
runs-on: ubuntu-latest
needs: [run-ci-ubuntu-latest, run-ci-debian-10]
if: github.event.release
steps:
- uses: actions/download-artifact@v3
with:
name: deb-package
- uses: softprops/action-gh-release@v1
with:
files: "*"
tag_name: ${{ github.event.release.tag_name }}