Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
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