diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml new file mode 100644 index 0000000..fa06170 --- /dev/null +++ b/.github/workflows/nightly.yml @@ -0,0 +1,51 @@ +name: Centos8-Nightly + +on: + push: + branches: + - main + pull_request: + workflow_dispatch: + +env: + CARGO_TERM_COLOR: always + +jobs: + debian10: + runs-on: debian10 + steps: + - uses: actions/checkout@v2 + - name: Build + run: ~/.cargo/bin/cargo +nightly build --verbose --release + - name: Build apt package + run: ~/.cargo/bin/cargo deb + + centos-8: + runs-on: centos8 + steps: + - uses: actions/checkout@v2 + - name: Build + run: ~/.cargo/bin/cargo build --verbose --release + - name: Create RPM scaffolding + run: | + cp -r rpm target/ + cp target/release/agent target/rpm/SOURCES/stackable-agent-0.1.0/opt/stackable-agent + find target/rpm/SOURCES/ -name ".gitkeep" -type f -delete + cd target/rpm/SOURCES && tar czvf stackable-agent-0.1.0.tar.gz stackable-agent-0.1.0 + - name: Build RPM + run: /usr/bin/rpmbuild --define "_topdir `pwd`/target/rpm" -v -ba target/rpm/SPECS/stackable-agent-0.1.0.spec + + centos-7: + runs-on: centos7 + steps: + - uses: actions/checkout@v2 + - name: Build + run: ~/.cargo/bin/cargo build --verbose --release + - name: Create RPM scaffolding + run: | + cp -r rpm target/ + cp target/release/agent target/rpm/SOURCES/stackable-agent-0.1.0/opt/stackable-agent + find target/rpm/SOURCES/ -name ".gitkeep" -type f -delete + cd target/rpm/SOURCES && tar czvf stackable-agent-0.1.0.tar.gz stackable-agent-0.1.0 + - name: Build RPM + run: /usr/bin/rpmbuild --define "_topdir `pwd`/target/rpm" -v -ba target/rpm/SPECS/stackable-agent-0.1.0.spec \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index aebec32..32d23f9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2700,7 +2700,7 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "stackable-agent" -version = "0.1.0" +version = "0.1.0-nightly" dependencies = [ "anyhow", "async-trait", diff --git a/Cargo.toml b/Cargo.toml index 62b1bc0..c91e6da 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "stackable-agent" -version = "0.1.0" +version = "0.1.0-nightly" authors = ["Sönke Liebau "] edition = "2018" @@ -46,3 +46,11 @@ serde_yaml = "0.8" opt-level = "s" lto = true codegen-units = 1 + +[package.metadata.deb] +maintainer-scripts = "debian/" +systemd-units = { enable = false } +assets = [ + ["rpm/SOURCES/stackable-agent-0.1.0/etc/stackable-agent/agent.conf", "etc/stackable-agent/", "644"], + ["target/release/agent", "opt/stackable-agent/stackable-agent", "755"], +] \ No newline at end of file diff --git a/debian/postinst b/debian/postinst new file mode 100644 index 0000000..5b21838 --- /dev/null +++ b/debian/postinst @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +mkdir -p /var/lib/stackable/packages +mkdir -p /var/lib/stackable/config +mkdir -p /var/lib/stackable/agentdata/config + +#DEBHELPER# \ No newline at end of file diff --git a/debian/service b/debian/service new file mode 100644 index 0000000..9c4e0c9 --- /dev/null +++ b/debian/service @@ -0,0 +1,14 @@ +[Unit] +Description=Stackable Agent +Before= +After=network.target +[Service] +User=root +ExecStart=/opt/stackable-agent/stackable-agent +Restart=on-abort +StandardOutput=journal +StandardError=journal +Environment="CONFIG_FILE=/etc/stackable-agent/agent.conf" +Environment="RUST_LOG=info,stackable_agent::provider::states=debug,stackable_agent::agentconfig=trace" +[Install] +WantedBy=multi-user.target diff --git a/rpm/SOURCES/stackable-agent-0.1.0/etc/stackable-agent/agent.conf b/rpm/SOURCES/stackable-agent-0.1.0/etc/stackable-agent/agent.conf new file mode 100644 index 0000000..4e31567 --- /dev/null +++ b/rpm/SOURCES/stackable-agent-0.1.0/etc/stackable-agent/agent.conf @@ -0,0 +1,5 @@ +--package-directory=/var/lib/stackable/packages +--config-directory=/var/lib/stackable/config +--data-directory=/var/lib/stackable/agentdata +--server-key-file=/var/lib/stackable/agentdata/config/agent.key +--server-cert-file=/var/lib/stackable/agentdata/config/agent.crt diff --git a/rpm/SOURCES/stackable-agent-0.1.0/etc/systemd/system/stackable-agent.service b/rpm/SOURCES/stackable-agent-0.1.0/etc/systemd/system/stackable-agent.service new file mode 100644 index 0000000..9c4e0c9 --- /dev/null +++ b/rpm/SOURCES/stackable-agent-0.1.0/etc/systemd/system/stackable-agent.service @@ -0,0 +1,14 @@ +[Unit] +Description=Stackable Agent +Before= +After=network.target +[Service] +User=root +ExecStart=/opt/stackable-agent/stackable-agent +Restart=on-abort +StandardOutput=journal +StandardError=journal +Environment="CONFIG_FILE=/etc/stackable-agent/agent.conf" +Environment="RUST_LOG=info,stackable_agent::provider::states=debug,stackable_agent::agentconfig=trace" +[Install] +WantedBy=multi-user.target diff --git a/rpm/SOURCES/stackable-agent-0.1.0/opt/stackable-agent/.gitkeep b/rpm/SOURCES/stackable-agent-0.1.0/opt/stackable-agent/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/rpm/SOURCES/stackable-agent-0.1.0/var/lib/stackable/config/.gitkeep b/rpm/SOURCES/stackable-agent-0.1.0/var/lib/stackable/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/rpm/SOURCES/stackable-agent-0.1.0/var/lib/stackable/data/.gitkeep b/rpm/SOURCES/stackable-agent-0.1.0/var/lib/stackable/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/rpm/SOURCES/stackable-agent-0.1.0/var/lib/stackable/packages/.gitkeep b/rpm/SOURCES/stackable-agent-0.1.0/var/lib/stackable/packages/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/rpm/SPECS/stackable-agent-0.1.0.spec b/rpm/SPECS/stackable-agent-0.1.0.spec new file mode 100644 index 0000000..5d826c5 --- /dev/null +++ b/rpm/SPECS/stackable-agent-0.1.0.spec @@ -0,0 +1,36 @@ +%define debug_package %{nil} +BuildRequires: systemd-rpm-macros + + +Name: stackable-agent +Version: 0.1.0 +Release: 1%{?dist} +Summary: Binarius package + +Group: System Environment/Base +License: GPLv3+ +Source0: stackable-agent-0.1.0.tar.gz + +%description +Testing package. + +%prep +%setup -q #unpack tarball + +%build + +%install +cp -rfa * %{buildroot} + +%post +%systemd_post stackable-agent.service + /usr/bin/systemctl daemon-reload + + +%files +/opt/stackable-agent/agent +/etc/stackable-agent/agent.conf +/etc/systemd/system/stackable-agent.service +%dir /var/lib/stackable/data +%dir /var/lib/stackable/config +%dir /var/lib/stackable/packages