first commit #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: push | |
jobs: | |
main: | |
runs-on: ubuntu-latest | |
steps: | |
- env: { LANG: C, LC_ALL: C, DEBIAN_FRONTEND: noninteractive } | |
run: | | |
# dependencies | |
sudo apt update --assume-yes | |
apt-mark showmanual | sudo xargs --no-run-if-empty -- apt-mark auto -- | |
sudo apt install --assume-yes -- git devscripts asciidoctor debhelper-compat dh-exec po-debconf socat \ | |
libaudit-dev libcap-ng-dev libcryptsetup-dev libpam0g-dev libsystemd-dev libudev-dev | |
# sudo apt full-upgrade --assume-yes | |
# sudo apt autoremove --assume-yes | |
# sudo apt full-upgrade --assume-yes | |
# sudo apt purge --assume-yes -- '~c' | |
- shell: python3 {0} | |
run: | | |
# build | |
import shutil | |
import pathlib | |
import subprocess | |
_current_directory = pathlib.Path(".").resolve(strict = True) | |
assert _current_directory.is_dir() | |
_build_directory = _current_directory / "build" | |
_build_directory.mkdir(parents = False, exist_ok = False) | |
assert _build_directory.resolve(strict = True) == _build_directory | |
_salsa_directory = _build_directory / "salsa" | |
assert not (_salsa_directory.is_symlink() or _salsa_directory.exists()) | |
subprocess.check_call(( | |
"git", "clone", "--depth=1", "--branch=bookworm", "--", | |
"https://salsa.debian.org/debian/util-linux.git", _salsa_directory.name | |
), stdin = subprocess.DEVNULL, cwd = _salsa_directory.parent) | |
assert _salsa_directory.resolve(strict = True) == _salsa_directory | |
subprocess.check_call(("dpkg-buildpackage", "--build=binary"), stdin = subprocess.DEVNULL, cwd = _salsa_directory) | |
shutil.rmtree(_salsa_directory) | |
_packages = list() | |
for _path in ("util-linux", "util-linux-extra", "libmount1", "libsmartcols1"): | |
_path, = _build_directory.glob(f"{_path}_*_amd64.deb") | |
assert _path.resolve(strict = True) == _path | |
assert _path.is_file() | |
_packages.append(_path.name) | |
subprocess.check_call(( | |
"sudo", "apt", "install", "--assume-yes", "--", *[f"./{_path}" for _path in _packages] | |
), stdin = subprocess.DEVNULL, cwd = _build_directory) | |
_packages = set(_packages) | |
_packages_directory = _build_directory / "packages" | |
_packages_directory.mkdir(parents = False, exist_ok = False) | |
assert _packages_directory.resolve(strict = True) == _packages_directory | |
for _path in filter(lambda p: p.name in _packages, _build_directory.glob("*")): _path.replace( | |
_packages_directory / _path.name | |
) | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: packages | |
path: build/packages |