stratisd nightly #27
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: stratisd nightly | |
# yamllint disable-line rule:truthy | |
on: | |
schedule: | |
- cron: 15 3 * * * | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
jobs: | |
jobs: | |
strategy: | |
matrix: | |
include: | |
- task: cargo package | |
toolchain: 1.73.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN | |
components: cargo | |
runs-on: ubuntu-22.04 | |
container: | |
image: fedora:38 # CURRENT DEVELOPMENT ENVIRONMENT | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install dependencies for Fedora | |
run: > | |
dnf install -y | |
clang | |
curl | |
cryptsetup-devel | |
dbus-devel | |
device-mapper-devel | |
libblkid-devel | |
make | |
ncurses | |
openssl-devel | |
python-requests | |
python-semantic_version | |
systemd-devel | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
components: ${{ matrix.components }} | |
toolchain: ${{ matrix.toolchain }} | |
- name: Test ${{ matrix.task }} on ${{ matrix.toolchain }} toolchain | |
run: ${{ matrix.task }} | |
check_future_dependencies: | |
runs-on: ubuntu-22.04 | |
container: | |
image: fedora:38 # CURRENT DEVELOPMENT ENVIRONMENT | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install dependencies for Fedora | |
run: > | |
dnf install -y | |
clang | |
curl | |
cryptsetup-devel | |
dbus-devel | |
libblkid-devel | |
make | |
ncurses | |
openssl-devel | |
systemd-devel | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
components: cargo, clippy | |
toolchain: 1.73.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN | |
- uses: baptiste0928/cargo-install@v2 | |
with: | |
crate: cargo-audit | |
- name: Run cargo-update | |
run: cargo update | |
- name: Run cargo-clippy | |
run: make -f Makefile clippy | |
- name: Run cargo-audit | |
run: make -f Makefile audit | |
allowed_failures: | |
continue-on-error: true | |
strategy: | |
matrix: | |
include: | |
# Allowed because a failure may occur after a new Rust stable | |
# version is released. | |
- task: make -f Makefile clippy | |
toolchain: stable | |
components: clippy | |
runs-on: ubuntu-22.04 | |
container: | |
image: fedora:38 # CURRENT DEVELOPMENT ENVIRONMENT | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install dependencies for Fedora | |
run: > | |
dnf install -y | |
clang | |
curl | |
cryptsetup-devel | |
dbus-devel | |
libblkid-devel | |
make | |
ncurses | |
openssl-devel | |
python-requests | |
python-semantic_version | |
systemd-devel | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
components: ${{ matrix.components }} | |
toolchain: ${{ matrix.toolchain }} | |
- uses: baptiste0928/cargo-install@v2 | |
with: | |
crate: cargo-audit | |
- name: Test ${{ matrix.task }} on ${{ matrix.toolchain }} toolchain | |
run: ${{ matrix.task }} | |
cargo-audit-checks: | |
continue-on-error: true | |
strategy: | |
matrix: | |
include: | |
- task: make -f Makefile audit | |
- task: AUDITABLE=1 PROFILEDIR=debug make -f Makefile audit-all-rust | |
runs-on: ubuntu-22.04 | |
container: | |
image: fedora:38 # CURRENT DEVELOPMENT ENVIRONMENT | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install dependencies for Fedora | |
run: > | |
dnf install -y | |
clang | |
curl | |
cryptsetup-devel | |
dbus-devel | |
glibc-static | |
libblkid-devel | |
make | |
ncurses | |
openssl-devel | |
python-requests | |
python-semantic_version | |
systemd-devel | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
components: cargo | |
toolchain: 1.73.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN | |
- uses: baptiste0928/cargo-install@v2 | |
with: | |
crate: cargo-audit | |
- uses: baptiste0928/cargo-install@v2 | |
with: | |
crate: cargo-auditable | |
- name: Run matrix task | |
run: ${{ matrix.task }} | |
checks-with-ci-repo: | |
runs-on: ubuntu-22.04 | |
container: | |
image: fedora:38 # CURRENT DEVELOPMENT ENVIRONMENT | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install dependencies for Fedora | |
run: > | |
dnf install -y | |
clang | |
curl | |
cryptsetup-devel | |
dbus-devel | |
device-mapper-devel | |
git | |
libblkid-devel | |
make | |
ncurses | |
openssl-devel | |
python-requests | |
python-semantic_version | |
systemd-devel | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
components: cargo | |
toolchain: 1.73.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN | |
- name: Check out ci repo | |
run: git clone https://github.com/stratis-storage/ci.git | |
- name: Run comparisons of version specs with available Fedora packages | |
# yamllint disable rule:line-length | |
run: | | |
COMPARE_FEDORA_VERSIONS=./ci/dependency_management/compare_fedora_versions FEDORA_RELEASE=rawhide IGNORE_ARGS="--ignore-high=libcryptsetup-rs --ignore-high=libcryptsetup-rs-sys --ignore-high=devicemapper" make -f Makefile_dependencies check-fedora-versions | |
COMPARE_FEDORA_VERSIONS=./ci/dependency_management/compare_fedora_versions FEDORA_RELEASE=f38 IGNORE_ARGS="--ignore-high=libcryptsetup-rs --ignore-high=libcryptsetup-rs-sys --ignore-high=devicemapper" make -f Makefile_dependencies check-fedora-versions | |
COMPARE_FEDORA_VERSIONS=./ci/dependency_management/compare_fedora_versions FEDORA_RELEASE=f37 IGNORE_ARGS="--ignore-high=libcryptsetup-rs --ignore-high=libcryptsetup-rs-sys --ignore-high=devicemapper" make -f Makefile_dependencies check-fedora-versions | |
legacy-cli-checks: | |
continue-on-error: true | |
strategy: | |
matrix: | |
include: | |
- image: fedora:36 # PINNED DEVELOPMENT ENVIRONMENT | |
tag: v3.4.1 | |
- image: fedora:36 # PINNED DEVELOPMENT ENVIRONMENT | |
tag: v3.4.0 | |
- image: fedora:36 # PINNED DEVELOPMENT ENVIRONMENT | |
tag: v3.3.0 | |
- image: fedora:35 # PINNED DEVELOPMENT ENVIRONMENT | |
tag: v3.2.0 | |
- image: fedora:35 # PINNED DEVELOPMENT ENVIRONMENT | |
tag: v3.1.0 | |
- image: fedora:35 # PINNED DEVELOPMENT ENVIRONMENT | |
tag: v3.0.0 | |
- image: fedora:35 # PINNED DEVELOPMENT ENVIRONMENT | |
tag: v3.0.1 | |
runs-on: ubuntu-22.04 | |
container: | |
image: ${{ matrix.image }} | |
options: --privileged --userns=host --ipc=host -v /run/dbus/system_bus_socket:/run/dbus/system_bus_socket:ro -v /usr/share/dbus-1:/usr/share/dbus-1 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install dependencies for Fedora | |
run: > | |
dnf install -y | |
asciidoc | |
clang | |
cryptsetup-devel | |
dbus-devel | |
device-mapper-devel | |
libblkid-devel | |
git | |
glibc-static | |
make | |
ncurses | |
python3-coverage | |
python3-dbus-client-gen | |
python3-dbus-python-client-gen | |
python3-justbytes | |
python3-dateutil | |
python3-packaging | |
python3-psutil | |
python3-wcwidth | |
systemd-devel | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
components: cargo | |
toolchain: 1.73.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN | |
- name: Build stratisd | |
run: PROFILEDIR=debug make -f Makefile build-all | |
- name: Install stratisd | |
run: PROFILEDIR=debug make -f Makefile install | |
- name: Workaround for dbus inotify | |
run: cp stratisd.conf /usr/share/dbus-1/system.d | |
- name: Check out stratis-cli | |
run: git clone https://github.com/stratis-storage/stratis-cli.git | |
- name: Checkout tag | |
run: git checkout tags/${{ matrix.tag }} -b ${{ matrix.tag }} | |
working-directory: ./stratis-cli | |
- name: Run stratis-cli tests | |
run: > | |
RUST_LOG=stratisd=debug | |
STRATISD=/usr/libexec/stratisd | |
STRATIS_SKIP_UNSTABLE_TEST=1 | |
PYTHONPATH=./src | |
make dbus-tests | |
working-directory: ./stratis-cli | |
python-based-tests: | |
strategy: | |
matrix: | |
include: | |
- toolchain: 1.73.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN | |
- toolchain: 1.71.1 # LOWEST SUPPORTED RUST TOOLCHAIN | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Run apt-get update | |
run: sudo apt-get -q update | |
- name: Install dependencies | |
run: > | |
DEBIAN_FRONTEND=noninteractive | |
sudo apt-get install -y | |
asciidoc | |
clang | |
curl | |
libblkid-dev | |
libcryptsetup-dev | |
libdbus-1-dev | |
libdevmapper-dev | |
libsystemd-dev | |
libudev-dev | |
make | |
thin-provisioning-tools | |
udev | |
xfsprogs | |
- name: Install Python dependencies | |
run: > | |
sudo python -m pip install | |
dbus-python | |
dbus-client-gen | |
dbus-python-client-gen | |
justbytes | |
psutil | |
pyudev | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
components: cargo | |
toolchain: ${{ matrix.toolchain }} | |
- name: Build stratisd | |
run: PROFILEDIR=debug make -f Makefile build-all | |
- name: Install stratisd | |
run: sudo make PROFILEDIR=debug -f Makefile install | |
- name: Workaround for dbus inotify | |
run: sudo cp stratisd.conf /usr/share/dbus-1/system.d | |
- name: Reload udev | |
run: sudo udevadm control --reload | |
- name: Tests using Rust ${{ matrix.toolchain }} | |
run: > | |
sudo make | |
RUST_LOG=stratisd=debug | |
STRATISD=/usr/libexec/stratisd | |
STRATIS_PREDICT_USAGE=/usr/bin/stratis-predict-usage | |
PYTHONPATH=./src | |
predict-tests | |
working-directory: ./tests/client-dbus |