From 0a2c5dd2ec4a3971e23f1caf0a0ac59bb474a721 Mon Sep 17 00:00:00 2001 From: Martin Hoffmann Date: Thu, 20 Jun 2024 14:53:27 +0200 Subject: [PATCH 1/3] Add Ploutos packaging workflow. --- .github/workflows/pkg.yml | 29 ++++++++++++++++++ pkg/rules/packages-to-build.yml | 52 +++++++++++++++++++++++++++++++++ pkg/test-scripts/test-dnsi.sh | 15 ++++++++++ 3 files changed, 96 insertions(+) create mode 100644 .github/workflows/pkg.yml create mode 100644 pkg/rules/packages-to-build.yml create mode 100644 pkg/test-scripts/test-dnsi.sh diff --git a/.github/workflows/pkg.yml b/.github/workflows/pkg.yml new file mode 100644 index 0000000..78157f2 --- /dev/null +++ b/.github/workflows/pkg.yml @@ -0,0 +1,29 @@ +name: Packaging + +on: + # Since this workflow is quite costly, we only run it automatically on + # release tags. Otherwise trigger it manually. + push: + tags: + - v* + + # Allow manually triggering the workflow. + workflow_dispatch: + +jobs: + package: + uses: NLnetLabs/ploutos/.github/workflows/pkg-rust.yml@v7 + secrets: + DOCKER_HUB_ID: ${{ secrets.DOCKER_HUB_ID }} + DOCKER_HUB_TOKEN: ${{ secrets.DOCKER_HUB_TOKEN }} + with: + docker_org: nlnetlabs + docker_repo: dnsi + docker_build_rules: pkg/rules/docker-images-to-build.yml + docker_sanity_check_command: --version + + package_build_rules: pkg/rules/packages-to-build.yml + package_test_scripts_path: pkg/test-scripts/test-.sh + + rpm_scriptlets_path: pkg/rpm/scriptlets.toml + diff --git a/pkg/rules/packages-to-build.yml b/pkg/rules/packages-to-build.yml new file mode 100644 index 0000000..af48a98 --- /dev/null +++ b/pkg/rules/packages-to-build.yml @@ -0,0 +1,52 @@ +# This matrix definition is used as both the package_build_rules and the +# package_test_rules Ploutos packaging workflow inputs. +--- +pkg: + - "dnsi" +image: + - "ubuntu:xenial" # ubuntu/16.04 + - "ubuntu:bionic" # ubuntu/18.04 + - "ubuntu:focal" # ubuntu/20.04 + - "ubuntu:jammy" # ubuntu/22.04 + - "debian:stretch" # debian/9 + - "debian:buster" # debian/10 + - "debian:bullseye" # debian/11 + - "debian:bookworm" # debian/12 + - 'centos:7' + - 'rockylinux:8' # compatible with EOL centos:8 + - 'rockylinux:9' +target: + - 'x86_64' +test-image: + - "" +include: + - pkg: "rtrtr" + image: 'debian:bullseye' + target: 'armv7-unknown-linux-musleabihf' + + - pkg: 'dnsi' + image: 'debian:buster' + target: 'arm-unknown-linux-musleabihf' + + - pkg: 'dnsi' + image: 'rockylinux:9' + target: 'x86_64' + test-image: 'almalinux:9' + + - pkg: 'dnsi' + image: 'rockylinux:9' + target: 'x86_64' + test-image: 'centos:9-Stream' + +test-mode: + - 'fresh-install' + - 'upgrade-from-published' + +test-exclude: + - pkg: 'dnsi' + image: 'rockylinux:9' + mode: 'upgrade-from-published' + - pkg: 'dnsi' + image: 'debian:bookworm' + mode: 'upgrade-from-published' + diff --git a/pkg/test-scripts/test-dnsi.sh b/pkg/test-scripts/test-dnsi.sh new file mode 100644 index 0000000..28dccb6 --- /dev/null +++ b/pkg/test-scripts/test-dnsi.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +set -eo pipefail +set -x + +case $1 in + post-install) + echo -e "\nDNSI VERSION:" + dnsi --version + + post-upgrade) + echo -e "\nDNSI VERSION:" + dnsi --version +esac + From 374e2a6967f468f9f9bb0b5f6d97ded311ecca7c Mon Sep 17 00:00:00 2001 From: Martin Hoffmann Date: Thu, 20 Jun 2024 15:16:18 +0200 Subject: [PATCH 2/3] Various fixes. --- .github/workflows/pkg.yml | 11 ----------- pkg/rules/packages-to-build.yml | 10 +--------- 2 files changed, 1 insertion(+), 20 deletions(-) diff --git a/.github/workflows/pkg.yml b/.github/workflows/pkg.yml index 78157f2..67386fd 100644 --- a/.github/workflows/pkg.yml +++ b/.github/workflows/pkg.yml @@ -13,17 +13,6 @@ on: jobs: package: uses: NLnetLabs/ploutos/.github/workflows/pkg-rust.yml@v7 - secrets: - DOCKER_HUB_ID: ${{ secrets.DOCKER_HUB_ID }} - DOCKER_HUB_TOKEN: ${{ secrets.DOCKER_HUB_TOKEN }} with: - docker_org: nlnetlabs - docker_repo: dnsi - docker_build_rules: pkg/rules/docker-images-to-build.yml - docker_sanity_check_command: --version - package_build_rules: pkg/rules/packages-to-build.yml package_test_scripts_path: pkg/test-scripts/test-.sh - - rpm_scriptlets_path: pkg/rpm/scriptlets.toml - diff --git a/pkg/rules/packages-to-build.yml b/pkg/rules/packages-to-build.yml index af48a98..1a093dd 100644 --- a/pkg/rules/packages-to-build.yml +++ b/pkg/rules/packages-to-build.yml @@ -40,13 +40,5 @@ include: test-mode: - 'fresh-install' - - 'upgrade-from-published' - -test-exclude: - - pkg: 'dnsi' - image: 'rockylinux:9' - mode: 'upgrade-from-published' - - pkg: 'dnsi' - image: 'debian:bookworm' - mode: 'upgrade-from-published' +# - 'upgrade-from-published' From b352246c885aaa5d06a85221678001fafe692910 Mon Sep 17 00:00:00 2001 From: Martin Hoffmann Date: Thu, 20 Jun 2024 16:08:40 +0200 Subject: [PATCH 3/3] Update Cargo.toml for packaging. --- Cargo.toml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index 956de6e..b744f6e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,4 +20,11 @@ domain = { version = "0.10", features = ["resolv", "unstable-client-transport" tempfile = "3.1.0" tokio = { version = "1.33", features = ["rt-multi-thread"] } +[package.metadata.deb] +extended-description = "A tool for investigating the DNS." +[package.metadata.generate-rpm] +license = "BSD" +assets = [ + { source = "target/release/dnsi", dest = "/usr/bin/dnsi", mode = "755" }, +]