Skip to content

stratisd nightly

stratisd nightly #387

Workflow file for this run

---
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.76.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN
components: cargo
runs-on: ubuntu-22.04
container:
image: fedora:39 # CURRENT DEVELOPMENT ENVIRONMENT
steps:
- uses: actions/checkout@v4
- 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:39 # CURRENT DEVELOPMENT ENVIRONMENT
steps:
- uses: actions/checkout@v4
- 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.76.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:39 # CURRENT DEVELOPMENT ENVIRONMENT
steps:
- uses: actions/checkout@v4
- 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:39 # CURRENT DEVELOPMENT ENVIRONMENT
steps:
- uses: actions/checkout@v4
- 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.76.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:39 # CURRENT DEVELOPMENT ENVIRONMENT
steps:
- uses: actions/checkout@v4
- 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.76.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 --ignore-high=libblkid-rs" make -f Makefile_dependencies check-fedora-versions
COMPARE_FEDORA_VERSIONS=./ci/dependency_management/compare_fedora_versions FEDORA_RELEASE=f40 IGNORE_ARGS="--ignore-high=libcryptsetup-rs --ignore-high=libcryptsetup-rs-sys --ignore-high=devicemapper --ignore-high=libblkid-rs" make -f Makefile_dependencies check-fedora-versions
COMPARE_FEDORA_VERSIONS=./ci/dependency_management/compare_fedora_versions FEDORA_RELEASE=f39 IGNORE_ARGS="--ignore-high=libcryptsetup-rs --ignore-high=libcryptsetup-rs-sys --ignore-high=devicemapper --ignore-high=libblkid-rs" 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@v4
- 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.76.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.76.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN
- toolchain: 1.71.1 # LOWEST SUPPORTED RUST TOOLCHAIN
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- 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