consistent kernel image and headers installation #244
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
name: docker build | |
# on: [push] | |
on: | |
push: | |
paths: | |
- 'usr/bin/dist-installer-cli' | |
- '.github/workflows/builds.yml' | |
jobs: | |
changes: | |
runs-on: ubuntu-22.04 | |
permissions: | |
pull-requests: read | |
outputs: | |
builds: ${{ steps.filter.outputs.builds }} | |
installer: ${{ steps.filter.outputs.installer }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dorny/paths-filter@v2 | |
id: filter | |
with: | |
filters: | | |
installer: | |
- 'usr/bin/dist-installer-cli' | |
builds: | |
- '.github/workflows/builds.yml' | |
build: | |
needs: changes | |
# if: ${{ (needs.changes.outputs.installer == 'true') }} | |
# if: ${{ (needs.changes.outputs.builds == 'true') }} | |
if: ${{ (needs.changes.outputs.installer == 'true' || needs.changes.outputs.builds == 'true') }} | |
## Github takes too long to set the current latest image, this is | |
## why we set it manually. | |
## https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- image: fedora:38 | |
## https://download.virtualbox.org/virtualbox/rpm/fedora/ no longer has fedora39. | |
#- image: fedora:latest | |
- image: debian:oldstable | |
- image: debian:stable | |
- image: debian:testing | |
- image: debian:unstable | |
- image: ubuntu:latest | |
- image: linuxmintd/mint21.2-amd64:latest | |
container: | |
image: ${{ matrix.image }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: System Basic Packages | |
run: | | |
if command -v apt-get; then | |
apt-get update --error-on=any | |
## Installer aborts if package upgrades are pending. | |
apt-get dist-upgrade --yes | |
apt-get install --yes shellcheck sudo adduser tor | |
elif command -v dnf; then | |
dnf upgrade --assumeyes | |
dnf install --assumeyes ShellCheck sudo tor systemd | |
else | |
exit 1 | |
fi | |
- name: System information | |
run: | | |
cat /etc/os-release | |
uname -a | |
echo "${PATH}" | |
#cat /etc/sudoers | |
#ls /etc/sudoers.d | |
- name: Enable Services | |
run: | | |
if command -v apt-get; then | |
service tor start | |
service tor status | |
elif command -v dnf; then | |
# sudo -u toranon tor -f /etc/tor/torrc --RunAsDaemon 1 | |
# sleep 3 | |
# ps aux | grep tor | |
#service tor start || true | |
#service tor status || true | |
systemctl enable tor || true | |
systemctl start tor || true | |
systemctl status tor || true | |
fi | |
- name: Normal user with sudo privileges | |
run: | | |
if test -f /etc/debian_version; then | |
## Debian trixie needs "--comment". | |
## Older Debian versions need "--gecos". | |
adduser --comment "" --disabled-password user || adduser --gecos "" --disabled-password user | |
usermod -aG sudo user | |
echo "%sudo ALL=(ALL) NOPASSWD: ALL" | tee /etc/sudoers.d/user | |
elif test -f /etc/fedora-release; then | |
adduser user | |
usermod -aG wheel user | |
echo "%wheel ALL=(ALL) NOPASSWD: ALL" | tee /etc/sudoers.d/user | |
else | |
exit 1 | |
fi | |
- name: Run default dist-installer-cli - Clearnet | |
run: sudo -u user -- usr/bin/dist-installer-cli --non-interactive --log-level=debug --no-boot --dev --ci | |
- name: Run default dist-installer-cli - Onion | |
run: sudo -u user -- usr/bin/dist-installer-cli --non-interactive --log-level=debug --no-boot --dev --ci --onion | |
- name: Run VirtualBox Installer - default repository - Clearnet | |
run: sudo -u user -- usr/bin/dist-installer-cli --non-interactive --log-level=debug --no-boot --dev --ci --virtualbox-only | |
- name: Run VirtualBox Installer - default repository - Onion | |
run: sudo -u user -- usr/bin/dist-installer-cli --non-interactive --log-level=debug --no-boot --dev --ci --virtualbox-only --onion | |
- name: Run VirtualBox Installer - Oracle repository - Clearnet | |
run: sudo -u user -- usr/bin/dist-installer-cli --non-interactive --log-level=debug --no-boot --dev --ci --virtualbox-only --oracle-repo | |
- name: Run VirtualBox Installer - Oracle repository - Onion | |
run: sudo -u user -- usr/bin/dist-installer-cli --non-interactive --log-level=debug --no-boot --dev --ci --virtualbox-only --oracle-repo --onion | |
- name: Run VirtualBox Installer - back to default repository | |
run: sudo -u user -- usr/bin/dist-installer-cli --non-interactive --log-level=debug --no-boot --dev --ci --virtualbox-only | |
- name: Run VirtualBox Installer - back to default repository - Clearnet | |
run: sudo -u user -- usr/bin/dist-installer-cli --non-interactive --log-level=debug --no-boot --dev --ci --virtualbox-only --onion | |
## When `source`d the script should exit in less than a second because it should not perform actual work. | |
## If it was running longer that would mean that it can no longer be `source`d without actually running. | |
- name: Run Bash to test 'source'ing the script | |
run: sudo -u user -- timeout 5 bash -c "set -x && source usr/bin/dist-installer-cli" | |
- name: Run Installer ShellCheck | |
run: shellcheck usr/bin/dist-installer-cli |