diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml new file mode 100644 index 0000000..8be7ae2 --- /dev/null +++ b/.github/workflows/nightly.yml @@ -0,0 +1,28 @@ +name: Publish-Nightly-Packages + +on: + push: + branches: + - main + +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 --manifest-path server/Cargo.toml --no-build + - name: Publish apt package + run: >- + /usr/bin/curl + -vvvv + --fail + -u 'github:${{ secrets.NEXUS_PASSWORD }}' + -H "Content-Type: multipart/form-data" + --data-binary "@./$(find target/debian/ -name *.deb)" + "https://repo.stackable.tech/repository/deb-nightly/" \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 0f47d6e..8abdc69 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2697,7 +2697,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 5240343..abfdc61 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,8 +1,10 @@ [package] name = "stackable-agent" -version = "0.1.0" +description = "Tha component of the Stackable Platform that manages installation of services on the workers" +version = "0.1.0-nightly" authors = ["Sönke Liebau "] edition = "2018" +license = "Apache-2.0" [dependencies] # We are currently referencing the Krustlet directly from a Stackable fork of the official repository. @@ -46,3 +48,11 @@ serde_yaml = "0.8" opt-level = "s" lto = true codegen-units = 1 + +[package.metadata.deb] +maintainer-scripts = "packaging/debian/" +systemd-units = { enable = false } +assets = [ + ["packaging/config/agent.conf", "etc/stackable-agent/", "644"], + ["target/release/agent", "opt/stackable-agent/stackable-agent", "755"], +] \ No newline at end of file diff --git a/packaging/config/agent.conf b/packaging/config/agent.conf new file mode 100644 index 0000000..19ae909 --- /dev/null +++ b/packaging/config/agent.conf @@ -0,0 +1,5 @@ +--package-directory=/var/lib/stackable/packages +--config-directory=/var/lib/stackable/config +--data-directory=/var/lib/stackable/agent +--server-key-file=/var/lib/stackable/agent/config/agent.key +--server-cert-file=/var/lib/stackable/agent/config/agent.crt \ No newline at end of file diff --git a/packaging/debian/postinst b/packaging/debian/postinst new file mode 100644 index 0000000..320bab6 --- /dev/null +++ b/packaging/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/agent/config + +#DEBHELPER# \ No newline at end of file diff --git a/packaging/debian/service b/packaging/debian/service new file mode 100644 index 0000000..1825efa --- /dev/null +++ b/packaging/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" +[Install] +WantedBy=multi-user.target