Exercise repeated systemd installation in CI

This commit is contained in:
Ochenstarik 2026-07-19 13:54:09 +07:00
parent 661919be39
commit 4f472b5852

View file

@ -10,7 +10,7 @@ permissions:
jobs:
build-and-test:
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v6
@ -50,3 +50,46 @@ jobs:
- name: Publish agent arm64
run: dotnet publish src/ServerMonitorManager.Agent/ServerMonitorManager.Agent.csproj --configuration Release --runtime linux-arm64 --self-contained true -p:PublishSingleFile=true -p:PublishTrimmed=true
- name: Build systemd smoke release
run: |
dotnet publish src/ServerMonitorManager.Agent/ServerMonitorManager.Agent.csproj \
--configuration Release --runtime linux-x64 --self-contained true \
-p:PublishSingleFile=true -p:PublishTrimmed=true -o smoke/agent
dotnet publish src/ServerMonitorManager.Control/ServerMonitorManager.Control.csproj \
--configuration Release --runtime linux-x64 --self-contained true \
-p:PublishSingleFile=true -p:PublishTrimmed=true -o smoke/control
install -d smoke/deploy smoke/bootstrap
install -m 0644 deploy/ochenstarik-smm-control.service smoke/deploy/
install -m 0644 deploy/ochenstarik-smm-agent.service smoke/deploy/
install -m 0644 deploy/ochenstarik-smm-firewall.service smoke/deploy/
install -m 0755 deploy/ochenstarik-smm-policy-apply smoke/deploy/
install -m 0755 deploy/ochenstarik-server-monitor-manager.sh smoke/bootstrap/
tar -C smoke -czf smoke-release.tar.gz agent control deploy bootstrap
sha256sum smoke-release.tar.gz > smoke-release.tar.gz.sha256
- name: Verify repeated systemd installation
run: |
set -Eeuo pipefail
sudo deploy/ochenstarik-server-monitor-manager.sh install-control \
smoke-release.tar.gz 127.0.0.1 7443
for _ in {1..30}; do
curl --fail --silent --cacert /etc/ochenstarik-server-monitor-manager/control-ca.crt \
https://127.0.0.1:7443/healthz && break
sleep 1
done
curl --fail --silent --show-error \
--cacert /etc/ochenstarik-server-monitor-manager/control-ca.crt \
https://127.0.0.1:7443/healthz
sudo deploy/ochenstarik-server-monitor-manager.sh install-control \
smoke-release.tar.gz 127.0.0.1 7443
sudo systemctl restart ochenstarik-smm-control.service
sudo systemctl is-active --quiet ochenstarik-smm-control.service
curl --fail --silent --show-error \
--retry 10 --retry-all-errors --retry-delay 1 \
--cacert /etc/ochenstarik-server-monitor-manager/control-ca.crt \
https://127.0.0.1:7443/healthz
- name: Clean up systemd smoke installation
if: always()
run: sudo deploy/ochenstarik-server-monitor-manager.sh uninstall-control --confirm-destroy-control || true