---
name: PackageCloud
on:
workflow_dispatch:
workflow_call:
secrets:
PACKAGECLOUD_TOKEN:
required: true
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
env:
PACKAGECLOUD_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }}
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Install packaging tools
run: cargo install --locked cargo-deb cargo-generate-rpm
- name: Build release binary
run: cargo build --release --locked
- name: Build deb
run: cargo deb --no-build
- name: Build rpm
run: cargo generate-rpm
- name: Create dist dir
run: mkdir dist
- name: Collect packages
run: cp target/debian/*.deb target/generate-rpm/*.rpm dist/
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3
bundler-cache: true
- name: Install PackageCloud
run: gem install --quiet --no-document package_cloud
- name: run ls
run: ls -al dist
- name: push Debian
run: |-
push_package() {
package_cloud push "$1" dist/*.deb --skip-errors || echo "::warning::PackageCloud push failed for $1"
}
for distro in squeeze wheezy jessie stretch buster bullseye bookworm trixie; do
push_package nbari/ssh-vault/debian/$distro
done
- name: push Ubuntu
run: |-
push_package() {
package_cloud push "$1" dist/*.deb --skip-errors || echo "::warning::PackageCloud push failed for $1"
}
for distro in bionic focal jammy noble questing resolute; do
push_package nbari/ssh-vault/ubuntu/$distro
done
- name: push Raspbian
run: |-
push_package() {
package_cloud push "$1" dist/*.deb --skip-errors || echo "::warning::PackageCloud push failed for $1"
}
for distro in stretch buster bullseye bookworm trixie; do
push_package nbari/ssh-vault/raspbian/$distro
done
- name: push Elementaryos
run: |-
push_package() {
package_cloud push "$1" dist/*.deb --skip-errors || echo "::warning::PackageCloud push failed for $1"
}
for distro in odin jolnir horus circe; do
push_package nbari/ssh-vault/elementaryos/$distro
done
- name: push Linuxmint
run: |-
push_package() {
package_cloud push "$1" dist/*.deb --skip-errors || echo "::warning::PackageCloud push failed for $1"
}
for distro in vanessa vera victoria virginia wilma xia; do
push_package nbari/ssh-vault/linuxmint/$distro
done
- name: push Enterprise Linux
run: |-
push_package() {
package_cloud push "$1" dist/*.rpm --skip-errors || echo "::warning::PackageCloud push failed for $1"
}
for distro in 7 8 9 10; do
push_package nbari/ssh-vault/el/$distro
done
- name: push Fedora
run: |-
push_package() {
package_cloud push "$1" dist/*.rpm --skip-errors || echo "::warning::PackageCloud push failed for $1"
}
for distro in 38 39 40 41 42 43 44; do
push_package nbari/ssh-vault/fedora/$distro
done
- name: push Opensuse
run: |-
push_package() {
package_cloud push "$1" dist/*.rpm --skip-errors || echo "::warning::PackageCloud push failed for $1"
}
for distro in 15.4 15.5 15.6 16.0; do
push_package nbari/ssh-vault/opensuse/$distro
done
- name: push Poky
run: |-
push_package() {
package_cloud push "$1" dist/*.rpm --skip-errors || echo "::warning::PackageCloud push failed for $1"
}
for distro in mickledore nanbield scarthgap styhead walnascar whinlatter wrynose; do
push_package nbari/ssh-vault/poky/$distro
done