Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/packaging/common
Submodule common added at fa4318
30 changes: 30 additions & 0 deletions .github/packaging/project/build_package.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/usr/bin/env bash
set -xeuo pipefail

function build_packages(){
if [ "$ENV_DISTRO" = "" ]; then
echo "ENV_DISTRO is not set"
return
fi
chown -R root:root .
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems like an odd thing to do - what directory does this execute from and why is this needed?

GIT_DIR=$(git rev-parse --show-toplevel)
cd "$GIT_DIR"
make one-file
cd $GIT_DIR/pkg
echo "building package for $BUILD_DISTRO"

if [[ $ENV_DISTRO == *"ubuntu"* ]]; then
make deb
elif [[ $ENV_DISTRO == *"debian"* ]]; then
make deb
elif [[ $ENV_DISTRO == *"el"* ]]; then
make rpm
elif [[ $ENV_DISTRO == *"amzn"* ]]; then
make rpm
else
make tar
fi

mkdir -p /tmp/output/$ENV_DISTRO
cp -a $GIT_DIR/pkg/target/* /tmp/output/$ENV_DISTRO
}
13 changes: 13 additions & 0 deletions .github/packaging/project/gha-main.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/usr/bin/env bash
set -xeuo pipefail

DISTRO="$1"
env
cd local
git fetch --unshallow --tags --no-recurse-submodules
git submodule update --init
ls -laht
git branch -v
.github/packaging/common/entrypoint.sh -c -d $DISTRO
.github/packaging/common/entrypoint.sh -e -d $DISTRO
ls -laht ../dist
274 changes: 274 additions & 0 deletions .github/packaging/project/install_deps.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,274 @@
#!/usr/bin/env bash
set -xeuo pipefail

DEBIAN_12_DEPS="libreadline8 libreadline-dev ruby-rubygems make rpm git snapd curl binutils rsync libssl3 libssl-dev lzma lzma-dev libffi-dev build-essential gcc g++"
DEBIAN_13_DEPS="libreadline8 libreadline-dev ruby-rubygems make rpm git snapd curl binutils rsync libssl3 libssl-dev lzma liblzma-dev libffi-dev libsqlite3-dev build-essential gcc g++ zlib1g-dev libbz2-dev libreadline-dev libncursesw5-dev libnss3-dev uuid-dev tk-dev xz-utils"
UBUNTU_2004_DEPS="libreadline8 libreadline-dev ruby make rpm git snapd curl binutils rsync libssl1.1 libssl-dev lzma lzma-dev libffi-dev build-essential gcc g++"
UBUNTU_2204_DEPS="libreadline8 libreadline-dev ruby-rubygems make rpm git snapd curl binutils rsync libssl3 libssl-dev lzma lzma-dev libffi-dev build-essential gcc g++"
UBUNTU_2404_DEPS="libreadline8 libreadline-dev ruby-rubygems make rpm git snapd curl binutils rsync libssl3 libssl-dev lzma lzma-dev libffi-dev build-essential gcc g++"
EL8_DEPS="ruby rubygems redhat-rpm-config rpm-build make git rsync gcc gcc-c++ make automake zlib zlib-devel libffi-devel openssl-devel bzip2-devel xz-devel xz xz-libs sqlite sqlite-devel sqlite-libs"
EL9_DEPS="ruby rpmdevtools make git rsync gcc g++ make automake zlib zlib-devel libffi-devel openssl-devel bzip2-devel xz-devel xz xz-libs sqlite sqlite-devel sqlite-libs"
EL10_DEPS="ruby rpmdevtools make git rsync gcc g++ make automake zlib zlib-devel libffi-devel openssl-devel bzip2-devel xz-devel xz xz-libs sqlite sqlite-devel sqlite-libs"
AMZN2023_DEPS="readline-devel ruby rpmdevtools make git rsync gcc g++ make automake zlib zlib-devel libffi-devel openssl-devel bzip2-devel xz-devel xz xz-libs sqlite sqlite-devel sqlite-libs"

function install_deps_debian12() {
apt -y install $DEBIAN_12_DEPS
if [ "$(uname -m)" = "x86_64" ]; then
curl -L https://go.dev/dl/go1.24.6.linux-amd64.tar.gz -o /tmp/go1.24.6.linux-amd64.tar.gz
mkdir -p /opt/golang && tar -zxvf /tmp/go1.24.6.linux-amd64.tar.gz -C /opt/golang
elif [ "$(uname -m)" = "aarch64" ]; then
curl -L https://go.dev/dl/go1.24.6.linux-arm64.tar.gz -o /tmp/go1.24.6.linux-arm64.tar.gz
mkdir -p /opt/golang && tar -zxvf /tmp/go1.24.6.linux-arm64.tar.gz -C /opt/golang
else
echo "unknown arch $(uname -m)"
exit 1
fi
/opt/golang/go/bin/go install github.com/asdf-vm/asdf/cmd/[email protected]
install /root/go/bin/asdf /usr/local/bin/asdf
asdf plugin add python https://github.com/asdf-community/asdf-python.git
asdf install python 3.10.18
asdf set python 3.10.18
echo "python 3.10.18" > /.tool-versions
echo "python 3.10.18" > /root/.tool-versions
asdf exec python -m pip install --break-system-packages pipenv
install /root/.asdf/installs/python/3.10.18/bin/python /usr/bin/python
install /root/.asdf/installs/python/3.10.18/bin/python /usr/bin/python3
install /root/.asdf/installs/python/3.10.18/bin/pipenv /usr/bin/pipenv
install /root/.asdf/installs/python/3.10.18/bin/pip /usr/bin/pip
install /root/.asdf/installs/python/3.10.18/bin/pip3 /usr/bin/pip3
gem install fpm -v 1.17.0
}

function install_deps_debian13() {
apt -y install $DEBIAN_13_DEPS
if [ "$(uname -m)" = "x86_64" ]; then
curl -L https://go.dev/dl/go1.24.6.linux-amd64.tar.gz -o /tmp/go1.24.6.linux-amd64.tar.gz
mkdir -p /opt/golang && tar -zxvf /tmp/go1.24.6.linux-amd64.tar.gz -C /opt/golang
elif [ "$(uname -m)" = "aarch64" ]; then
curl -L https://go.dev/dl/go1.24.6.linux-arm64.tar.gz -o /tmp/go1.24.6.linux-arm64.tar.gz
mkdir -p /opt/golang && tar -zxvf /tmp/go1.24.6.linux-arm64.tar.gz -C /opt/golang
else
echo "unknown arch $(uname -m)"
exit 1
fi
/opt/golang/go/bin/go install github.com/asdf-vm/asdf/cmd/[email protected]
install /root/go/bin/asdf /usr/local/bin/asdf
asdf plugin add python https://github.com/asdf-community/asdf-python.git
asdf install python 3.10.18
asdf set python 3.10.18
echo "python 3.10.18" > /.tool-versions
echo "python 3.10.18" > /root/.tool-versions
asdf exec python -m pip install --break-system-packages pipenv
install /root/.asdf/installs/python/3.10.18/bin/python /usr/bin/python
install /root/.asdf/installs/python/3.10.18/bin/python /usr/bin/python3
install /root/.asdf/installs/python/3.10.18/bin/pipenv /usr/bin/pipenv
install /root/.asdf/installs/python/3.10.18/bin/pip /usr/bin/pip
install /root/.asdf/installs/python/3.10.18/bin/pip3 /usr/bin/pip3


gem install fpm -v 1.17.0
}

function install_deps_ubuntu20.04() {
apt -y install $UBUNTU_2004_DEPS
if [ "$(uname -m)" = "x86_64" ]; then
curl -L https://go.dev/dl/go1.24.6.linux-amd64.tar.gz -o /tmp/go1.24.6.linux-amd64.tar.gz
mkdir -p /opt/golang && tar -zxvf /tmp/go1.24.6.linux-amd64.tar.gz -C /opt/golang
elif [ "$(uname -m)" = "aarch64" ]; then
curl -L https://go.dev/dl/go1.24.6.linux-arm64.tar.gz -o /tmp/go1.24.6.linux-arm64.tar.gz
mkdir -p /opt/golang && tar -zxvf /tmp/go1.24.6.linux-arm64.tar.gz -C /opt/golang
else
echo "unknown arch $(uname -m)"
exit 1
fi
/opt/golang/go/bin/go install github.com/asdf-vm/asdf/cmd/[email protected]
install /root/go/bin/asdf /usr/local/bin/asdf
asdf plugin add python https://github.com/asdf-community/asdf-python.git
asdf install python 3.10.18
asdf set python 3.10.18
echo "python 3.10.18" > /.tool-versions
echo "python 3.10.18" > /root/.tool-versions
asdf exec python -m pip install pipenv
install /root/.asdf/installs/python/3.10.18/bin/python /usr/bin/python
install /root/.asdf/installs/python/3.10.18/bin/python /usr/bin/python3
install /root/.asdf/installs/python/3.10.18/bin/pipenv /usr/bin/pipenv
install /root/.asdf/installs/python/3.10.18/bin/pip /usr/bin/pip
install /root/.asdf/installs/python/3.10.18/bin/pip3 /usr/bin/pip3
gem install fpm -v 1.17.0
}

function install_deps_ubuntu22.04() {
apt -y install $UBUNTU_2204_DEPS
if [ "$(uname -m)" = "x86_64" ]; then
curl -L https://go.dev/dl/go1.24.6.linux-amd64.tar.gz -o /tmp/go1.24.6.linux-amd64.tar.gz
mkdir -p /opt/golang && tar -zxvf /tmp/go1.24.6.linux-amd64.tar.gz -C /opt/golang
elif [ "$(uname -m)" = "aarch64" ]; then
curl -L https://go.dev/dl/go1.24.6.linux-arm64.tar.gz -o /tmp/go1.24.6.linux-arm64.tar.gz
mkdir -p /opt/golang && tar -zxvf /tmp/go1.24.6.linux-arm64.tar.gz -C /opt/golang
else
echo "unknown arch $(uname -m)"
exit 1
fi
/opt/golang/go/bin/go install github.com/asdf-vm/asdf/cmd/[email protected]
install /root/go/bin/asdf /usr/local/bin/asdf
asdf plugin add python https://github.com/asdf-community/asdf-python.git
asdf install python 3.10.18
asdf set python 3.10.18
echo "python 3.10.18" > /.tool-versions
echo "python 3.10.18" > /root/.tool-versions
asdf exec python -m pip install pipenv
install /root/.asdf/installs/python/3.10.18/bin/python /usr/bin/python
install /root/.asdf/installs/python/3.10.18/bin/python /usr/bin/python3
install /root/.asdf/installs/python/3.10.18/bin/pipenv /usr/bin/pipenv
install /root/.asdf/installs/python/3.10.18/bin/pip /usr/bin/pip
install /root/.asdf/installs/python/3.10.18/bin/pip3 /usr/bin/pip3
gem install fpm -v 1.17.0
}

function install_deps_ubuntu24.04() {
apt -y install $UBUNTU_2404_DEPS
if [ "$(uname -m)" = "x86_64" ]; then
curl -L https://go.dev/dl/go1.24.6.linux-amd64.tar.gz -o /tmp/go1.24.6.linux-amd64.tar.gz
mkdir -p /opt/golang && tar -zxvf /tmp/go1.24.6.linux-amd64.tar.gz -C /opt/golang
elif [ "$(uname -m)" = "aarch64" ]; then
curl -L https://go.dev/dl/go1.24.6.linux-arm64.tar.gz -o /tmp/go1.24.6.linux-arm64.tar.gz
mkdir -p /opt/golang && tar -zxvf /tmp/go1.24.6.linux-arm64.tar.gz -C /opt/golang
else
echo "unknown arch $(uname -m)"
exit 1
fi

/opt/golang/go/bin/go install github.com/asdf-vm/asdf/cmd/[email protected]
install /root/go/bin/asdf /usr/local/bin/asdf
asdf plugin add python https://github.com/asdf-community/asdf-python.git
asdf install python 3.10.18
asdf set python 3.10.18
echo "python 3.10.18" > /.tool-versions
echo "python 3.10.18" > /root/.tool-versions
asdf exec python -m pip install --break-system-packages pipenv
install /root/.asdf/installs/python/3.10.18/bin/python /usr/bin/python
install /root/.asdf/installs/python/3.10.18/bin/python /usr/bin/python3
install /root/.asdf/installs/python/3.10.18/bin/pipenv /usr/bin/pipenv
install /root/.asdf/installs/python/3.10.18/bin/pip /usr/bin/pip
install /root/.asdf/installs/python/3.10.18/bin/pip3 /usr/bin/pip3
gem install fpm -v 1.17.0
}

function install_deps_el8() {
dnf module enable -y ruby:2.7
yum install -y "https://download.rockylinux.org/pub/rocky/8.10/Devel/$(uname -m)/os/Packages/r/readline-devel-7.0-10.el8.$(uname -m).rpm"
dnf -y install $EL8_DEPS
gem install --no-document fpm
if [ "$(uname -m)" = "x86_64" ]; then
curl -L https://go.dev/dl/go1.24.6.linux-amd64.tar.gz -o /tmp/go1.24.6.linux-amd64.tar.gz
mkdir -p /opt/golang && tar -zxvf /tmp/go1.24.6.linux-amd64.tar.gz -C /opt/golang
elif [ "$(uname -m)" = "aarch64" ]; then
curl -L https://go.dev/dl/go1.24.6.linux-arm64.tar.gz -o /tmp/go1.24.6.linux-arm64.tar.gz
mkdir -p /opt/golang && tar -zxvf /tmp/go1.24.6.linux-arm64.tar.gz -C /opt/golang
else
echo "unknown arch $(uname -m)"
exit 1
fi
/opt/golang/go/bin/go install github.com/asdf-vm/asdf/cmd/[email protected]
install /root/go/bin/asdf /usr/local/bin/asdf
asdf plugin add python https://github.com/asdf-community/asdf-python.git
asdf install python 3.10.18
asdf set python 3.10.18
echo "python 3.10.18" > /.tool-versions
echo "python 3.10.18" > /root/.tool-versions
asdf exec python -m pip install pipenv
install /root/.asdf/installs/python/3.10.18/bin/python /usr/bin/python
install /root/.asdf/installs/python/3.10.18/bin/python /usr/bin/python3
install /root/.asdf/installs/python/3.10.18/bin/pipenv /usr/bin/pipenv
install /root/.asdf/installs/python/3.10.18/bin/pip /usr/bin/pip
install /root/.asdf/installs/python/3.10.18/bin/pip3 /usr/bin/pip3

gem install fpm -v 1.17.0
}

function install_deps_el9() {
yum install -y "https://download.rockylinux.org/pub/rocky/9.6/devel/$(uname -m)/os/Packages/r/readline-devel-8.1-4.el9.$(uname -m).rpm"
dnf -y install $EL9_DEPS

if [ "$(uname -m)" = "x86_64" ]; then
curl -L https://go.dev/dl/go1.24.6.linux-amd64.tar.gz -o /tmp/go1.24.6.linux-amd64.tar.gz
mkdir -p /opt/golang && tar -zxvf /tmp/go1.24.6.linux-amd64.tar.gz -C /opt/golang
elif [ "$(uname -m)" = "aarch64" ]; then
curl -L https://go.dev/dl/go1.24.6.linux-arm64.tar.gz -o /tmp/go1.24.6.linux-arm64.tar.gz
mkdir -p /opt/golang && tar -zxvf /tmp/go1.24.6.linux-arm64.tar.gz -C /opt/golang
else
echo "unknown arch $(uname -m)"
exit 1
fi
/opt/golang/go/bin/go install github.com/asdf-vm/asdf/cmd/[email protected]
install /root/go/bin/asdf /usr/local/bin/asdf
asdf plugin add python https://github.com/asdf-community/asdf-python.git
asdf install python 3.10.18
asdf set python 3.10.18
echo "python 3.10.18" > /.tool-versions
echo "python 3.10.18" > /root/.tool-versions
asdf exec python -m pip install --break-system-packages pipenv
install /root/.asdf/installs/python/3.10.18/bin/python /usr/bin/python
install /root/.asdf/installs/python/3.10.18/bin/python /usr/bin/python3
install /root/.asdf/installs/python/3.10.18/bin/pipenv /usr/bin/pipenv
install /root/.asdf/installs/python/3.10.18/bin/pip /usr/bin/pip
install /root/.asdf/installs/python/3.10.18/bin/pip3 /usr/bin/pip3
gem install fpm -v 1.17.0
}

function install_deps_el10() {
yum install -y "https://download.rockylinux.org/pub/rocky/10.0/devel/$(uname -m)/os/Packages/r/readline-devel-8.2-11.el10.$(uname -m).rpm"
dnf -y install $EL10_DEPS
if [ "$(uname -m)" = "x86_64" ]; then
curl -L https://go.dev/dl/go1.24.6.linux-amd64.tar.gz -o /tmp/go1.24.6.linux-amd64.tar.gz
mkdir -p /opt/golang && tar -zxvf /tmp/go1.24.6.linux-amd64.tar.gz -C /opt/golang
elif [ "$(uname -m)" = "aarch64" ]; then
curl -L https://go.dev/dl/go1.24.6.linux-arm64.tar.gz -o /tmp/go1.24.6.linux-arm64.tar.gz
mkdir -p /opt/golang && tar -zxvf /tmp/go1.24.6.linux-arm64.tar.gz -C /opt/golang
else
echo "unknown arch $(uname -m)"
exit 1
fi
/opt/golang/go/bin/go install github.com/asdf-vm/asdf/cmd/[email protected]
install /root/go/bin/asdf /usr/local/bin/asdf
asdf plugin add python https://github.com/asdf-community/asdf-python.git
asdf install python 3.10.18
asdf set python 3.10.18
echo "python 3.10.18" > /.tool-versions
echo "python 3.10.18" > /root/.tool-versions
asdf exec python -m pip install --break-system-packages pipenv
install /root/.asdf/installs/python/3.10.18/bin/python /usr/bin/python
install /root/.asdf/installs/python/3.10.18/bin/python /usr/bin/python3
install /root/.asdf/installs/python/3.10.18/bin/pipenv /usr/bin/pipenv
install /root/.asdf/installs/python/3.10.18/bin/pip /usr/bin/pip
install /root/.asdf/installs/python/3.10.18/bin/pip3 /usr/bin/pip3
gem install fpm
}

function install_deps_amzn2023() {
dnf -y install $AMZN2023_DEPS
if [ "$(uname -m)" = "x86_64" ]; then
curl -L https://go.dev/dl/go1.24.6.linux-amd64.tar.gz -o /tmp/go1.24.6.linux-amd64.tar.gz
mkdir -p /opt/golang && tar -zxvf /tmp/go1.24.6.linux-amd64.tar.gz -C /opt/golang
elif [ "$(uname -m)" = "aarch64" ]; then
curl -L https://go.dev/dl/go1.24.6.linux-arm64.tar.gz -o /tmp/go1.24.6.linux-arm64.tar.gz
mkdir -p /opt/golang && tar -zxvf /tmp/go1.24.6.linux-arm64.tar.gz -C /opt/golang
else
echo "unknown arch $(uname -m)"
exit 1
fi
/opt/golang/go/bin/go install github.com/asdf-vm/asdf/cmd/[email protected]
install /root/go/bin/asdf /usr/local/bin/asdf
asdf plugin add python https://github.com/asdf-community/asdf-python.git
asdf install python 3.10.18
asdf set python 3.10.18
echo "python 3.10.18" > /.tool-versions
echo "python 3.10.18" > /root/.tool-versions
asdf exec python -m pip install --break-system-packages pipenv
install /root/.asdf/installs/python/3.10.18/bin/python /usr/bin/python
install /root/.asdf/installs/python/3.10.18/bin/python /usr/bin/python3
install /root/.asdf/installs/python/3.10.18/bin/pipenv /usr/bin/pipenv
install /root/.asdf/installs/python/3.10.18/bin/pip /usr/bin/pip
install /root/.asdf/installs/python/3.10.18/bin/pip3 /usr/bin/pip3
gem install fpm -v 1.17.0
}
7 changes: 7 additions & 0 deletions .github/packaging/project/test/gha-test-main.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/usr/bin/env bash
set -xeuo pipefail
DISTRO="$1"
REPO_NAME="$2"
env
git fetch --unshallow --tags --no-recurse-submodules
.github/packaging/common/example-test.sh "$DISTRO" "$REPO_NAME"
6 changes: 6 additions & 0 deletions .github/packaging/project/test/test_execute.bats
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/usr/bin/env bats

@test "can run asadm" {
asadm --help
[ "$?" -eq 0 ]
}
Loading
Loading