2022-10-19 10:13:04 -07:00
|
|
|
name: AMD64 - Package build
|
2022-09-17 13:10:26 -07:00
|
|
|
|
|
|
|
on:
|
|
|
|
push:
|
|
|
|
branches:
|
|
|
|
- master
|
|
|
|
paths:
|
|
|
|
- 'x86_64/**'
|
|
|
|
pull_request:
|
|
|
|
paths:
|
|
|
|
- 'x86_64/**'
|
|
|
|
workflow_dispatch:
|
|
|
|
inputs:
|
|
|
|
packages:
|
|
|
|
description: "A space-separated names of packages selected for rebuilding"
|
|
|
|
required: true
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
build:
|
2022-11-01 11:22:15 -07:00
|
|
|
runs-on: ubuntu-20.04
|
2022-09-17 13:10:26 -07:00
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
steps:
|
|
|
|
- name: Clone repository
|
|
|
|
uses: actions/checkout@v3
|
|
|
|
with:
|
|
|
|
fetch-depth: 1000
|
|
|
|
- name: Clean up workflow env
|
|
|
|
run: |
|
|
|
|
# Free up space ( for this workflow )
|
2022-09-18 01:02:07 -07:00
|
|
|
sudo apt purge -yq $(dpkg -l | grep '^ii' | awk '{ print $2 }' | grep -P '(cabal-|dotnet-|ghc-|libmono|php)') \
|
|
|
|
liblldb-6.0 libllvm6.0:amd64 mono-runtime-common monodoc-manual powershell ruby
|
2022-09-17 13:10:26 -07:00
|
|
|
|
2022-09-18 01:02:07 -07:00
|
|
|
sudo apt autoremove -yq
|
|
|
|
sudo rm -rf /opt/hostedtoolcache /usr/local /usr/share/dotnet /usr/share/swift
|
2022-09-17 13:10:26 -07:00
|
|
|
|
|
|
|
# Move some stuff
|
|
|
|
cd /home/runner/work/drunk_pkg/
|
|
|
|
mkdir -p DRUNK/pkgbuild
|
|
|
|
cp -rf /home/runner/work/drunk_pkg/drunk_pkg/* DRUNK/pkgbuild
|
|
|
|
mv -f DRUNK drunk_pkg
|
|
|
|
|
|
|
|
- name: prepare build env
|
|
|
|
run: |
|
|
|
|
# Basics
|
|
|
|
export HEAD_COMMIT=$(jq --raw-output .commits[-1].id "$GITHUB_EVENT_PATH")
|
|
|
|
|
|
|
|
# Clone and install required deps
|
|
|
|
mkdir -p /home/runner/work/drunk_pkg/drunk_pkg/DRUNK/
|
|
|
|
cd /home/runner/work/drunk_pkg/drunk_pkg/DRUNK
|
2022-12-08 03:01:20 -08:00
|
|
|
git clone https://git.it-kuny.ch/drunk/tools.git tools --depth=10
|
|
|
|
mkdir -p tools/tmp
|
2022-09-17 13:10:26 -07:00
|
|
|
|
|
|
|
# Checkout the changed commitid
|
|
|
|
cd pkgbuild && git reset --hard ${HEAD_COMMIT}
|
|
|
|
cd /home/runner/work/drunk_pkg/drunk_pkg/DRUNK
|
|
|
|
|
2022-12-08 03:01:20 -08:00
|
|
|
ln -sf tools/drunk.sh drunk
|
2022-09-17 13:10:26 -07:00
|
|
|
|
2022-12-08 03:01:20 -08:00
|
|
|
mkdir -p tools/tmp
|
2022-09-17 13:10:26 -07:00
|
|
|
|
|
|
|
# Now prepare drunk build env
|
|
|
|
# As were running in ubuntu env then we need to bypass normal checks of script
|
2022-12-08 03:01:20 -08:00
|
|
|
touch tools/checks/is_checked
|
2022-09-17 13:10:26 -07:00
|
|
|
|
|
|
|
- name: Setup docker
|
|
|
|
run: |
|
|
|
|
cd /home/runner/work/drunk_pkg/drunk_pkg/DRUNK
|
|
|
|
export P_ROOT=$(pwd)
|
|
|
|
# Pull drunk docker image and make new container of it
|
|
|
|
sudo docker pull hilledkinged/drunk:latest
|
|
|
|
docker container create \
|
2022-09-18 01:02:07 -07:00
|
|
|
--name drunk_dev \
|
2022-09-17 13:10:26 -07:00
|
|
|
--volume $P_ROOT:/home/developer/DRUNK \
|
|
|
|
--tty \
|
|
|
|
--privileged \
|
|
|
|
--device=/dev/loop-control:/dev/loop-control \
|
|
|
|
--device=/dev/loop0:/dev/loop0 \
|
|
|
|
hilledkinged/drunk /bin/bash
|
|
|
|
|
|
|
|
sleep 1
|
2022-09-18 01:02:07 -07:00
|
|
|
sudo docker start drunk_dev >/dev/null
|
2022-09-17 13:10:26 -07:00
|
|
|
sleep 1
|
|
|
|
|
2022-09-18 01:02:07 -07:00
|
|
|
sudo docker exec --tty -e PATH=/bin:/sbin:/usr/bin:/usr/sbin drunk_dev /bin/bash -c "rm -rf /var/lib/bottle/sync/*"
|
|
|
|
sudo docker exec --tty -e PATH=/bin:/sbin:/usr/bin:/usr/sbin drunk_dev /bin/bash -c "useradd developer -m -g wheel"
|
2022-12-08 03:01:20 -08:00
|
|
|
sudo docker exec --tty -e PATH=/bin:/sbin:/usr/bin:/usr/sbin drunk_dev /bin/bash -c "bash -c /home/developer/DRUNK/tools/docker/developer.sh"
|
|
|
|
sudo docker exec --tty -e PATH=/bin:/sbin:/usr/bin:/usr/sbin drunk_dev /bin/bash -c "cp -f /home/developer/DRUNK/tools/docker/bottle.conf /etc/bottle.conf"
|
2022-09-18 01:02:07 -07:00
|
|
|
sudo docker exec --tty -e PATH=/bin:/sbin:/usr/bin:/usr/sbin drunk_dev /bin/bash -c "bottle -Syu --needed --noconfirm --disable-download-timeout"
|
2022-12-08 03:01:54 -08:00
|
|
|
sudo docker exec --tty -e PATH=/bin:/sbin:/usr/bin:/usr/sbin drunk_dev /bin/bash -c "bash -c /home/developer/DRUNK/tools/docker/developer.sh"
|
2022-09-18 01:02:07 -07:00
|
|
|
sudo docker exec --tty -e PATH=/bin:/sbin:/usr/bin:/usr/sbin drunk_dev /bin/bash -c "bottle --needed --noconfirm --disable-download-timeout -Sy sudo autoconf automake grep nano mpfr mpc base-devel m4 git linux"
|
2022-12-08 03:01:20 -08:00
|
|
|
sudo docker exec --tty -e PATH=/bin:/sbin:/usr/bin:/usr/sbin drunk_dev /bin/bash -c "bash -c /home/developer/DRUNK/tools/docker/fix_sudo.sh"
|
|
|
|
sudo docker exec --tty -e PATH=/bin:/sbin:/usr/bin:/usr/sbin drunk_dev /bin/bash -c "bash -c /home/developer/DRUNK/tools/docker/locale.sh"
|
2022-09-17 13:10:26 -07:00
|
|
|
|
2022-09-18 01:23:26 -07:00
|
|
|
# Make sure to tell the setup that container is ready to be used ( otherwise it will error out )
|
2022-12-08 03:01:20 -08:00
|
|
|
touch /home/runner/work/drunk_pkg/drunk_pkg/DRUNK/tools/checks/docker_ready
|
2022-09-18 01:23:26 -07:00
|
|
|
|
2022-09-17 13:10:26 -07:00
|
|
|
- name: PKG Build
|
|
|
|
run: |
|
|
|
|
# Perms fix
|
|
|
|
iamnow=$(whoami)
|
|
|
|
echo $iamnow
|
|
|
|
sudo chmod -R 777 /home/runner/work/drunk_pkg/drunk_pkg/DRUNK
|
|
|
|
|
|
|
|
sudo chmod +x /home/runner/work/drunk_pkg/drunk_pkg/DRUNK/drunk
|
2022-12-08 03:01:20 -08:00
|
|
|
sudo chmod +x /home/runner/work/drunk_pkg/drunk_pkg/DRUNK/tools/drunk.sh
|
2022-09-17 13:10:26 -07:00
|
|
|
|
|
|
|
# Create pkg list to compile
|
|
|
|
cd /home/runner/work/drunk_pkg/drunk_pkg/DRUNK/pkgbuild
|
|
|
|
./changed.sh > ../pkglist
|
|
|
|
|
|
|
|
# Build the packages in docker env
|
|
|
|
cd /home/runner/work/drunk_pkg/drunk_pkg/DRUNK
|
|
|
|
|
|
|
|
# Print pkg's
|
|
|
|
echo " "
|
|
|
|
echo "[List of pkgs to build]: " && cat pkglist
|
|
|
|
echo " "
|
|
|
|
|
|
|
|
./drunk -d -b $(cat pkglist)
|
|
|
|
|
|
|
|
# Now lets move the packages to certain path
|
|
|
|
mkdir -p /home/runner/work/drunk_pkg/drunk_pkg/DRUNK/pkgs
|
|
|
|
mv pkgbuild/pkgs/*/*pkg.tar.gz /home/runner/work/drunk_pkg/drunk_pkg/DRUNK/pkgs
|
|
|
|
|
|
|
|
- name: "Upload the pkg's"
|
|
|
|
uses: actions/upload-artifact@v3
|
|
|
|
with:
|
|
|
|
path: /home/runner/work/drunk_pkg/drunk_pkg/DRUNK/pkgs/*pkg.tar.gz
|