build #365
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/share/usability-misc/dist-installer-cli-standalone' | |
- '.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@v4 | |
- uses: dorny/paths-filter@v3 | |
id: filter | |
with: | |
filters: | | |
installer: | |
- 'usr/share/usability-misc/dist-installer-cli-standalone' | |
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. | |
## Fedora 39 not in VirtualBox Fedora Repository | |
## https://www.virtualbox.org//ticket/21929 | |
#- image: fedora:latest | |
- image: debian:oldstable | |
- image: debian:stable | |
- image: debian:testing | |
- image: debian:unstable | |
- image: ubuntu:latest | |
- image: linuxmintd/mint21.3-amd64:latest | |
- image: kalilinux/kali-rolling | |
container: | |
image: ${{ matrix.image }} | |
steps: | |
- uses: actions/checkout@v4 | |
- 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 locales | |
elif command -v dnf; then | |
dnf upgrade --assumeyes | |
dnf install --assumeyes ShellCheck sudo tor systemd | |
## Debugging. | |
dnf whatprovides needs-restarting | |
else | |
exit 1 | |
fi | |
## TODO: test | |
sed -i "s/^# \(ru_RU.UTF-8 UTF-8\)$/\1/" /etc/locale.gen || true | |
## TODO: Probably missing package on Fedora. | |
locale-gen || true | |
- name: System information | |
run: | | |
cat /etc/os-release | |
uname -a | |
echo "${PATH}" | |
localedef --list-archive | |
locale | |
#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 | |
#cat /etc/tor/torrc || true | |
## Manual start without systemd. | |
# sudo -u toranon tor -f /etc/tor/torrc --RunAsDaemon 1 | |
# sleep 3 | |
# ps aux | grep tor | |
## 'service' not available on Fedora. | |
#service tor start || true | |
#service tor status || true | |
/lib/systemd/systemd --system || true | |
/usr/sbin/init || true | |
## systemd installation in this way does not work. Error message: | |
## System has not been booted with systemd as init system (PID 1). Can't operate. | |
systemctl enable --now 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/share/usability-misc/dist-installer-cli-standalone --non-interactive --log-level=debug --no-boot --dev --ci | |
- name: Run default dist-installer-cli - Onion | |
run: sudo -u user -- usr/share/usability-misc/dist-installer-cli-standalone --non-interactive --log-level=debug --no-boot --dev --ci --onion | |
- name: Run VirtualBox Installer - default repository - Clearnet | |
run: sudo -u user -- usr/share/usability-misc/dist-installer-cli-standalone --non-interactive --log-level=debug --no-boot --dev --ci --virtualbox-only | |
- name: Run VirtualBox Installer - default repository - Onion | |
run: sudo -u user -- usr/share/usability-misc/dist-installer-cli-standalone --non-interactive --log-level=debug --no-boot --dev --ci --virtualbox-only --onion | |
- name: Run VirtualBox Installer - Oracle repository - Clearnet | |
run: | | |
if ! grep -iq "kali" /etc/os-release; then | |
sudo -u user -- usr/share/usability-misc/dist-installer-cli-standalone --non-interactive --log-level=debug --no-boot --dev --ci --virtualbox-only --oracle-repo | |
fi | |
- name: Run VirtualBox Installer - Oracle repository - Onion | |
run: | | |
if ! grep -iq "kali" /etc/os-release; then | |
sudo -u user -- usr/share/usability-misc/dist-installer-cli-standalone --non-interactive --log-level=debug --no-boot --dev --ci --virtualbox-only --oracle-repo --onion | |
fi | |
- name: Run VirtualBox Installer - back to default repository | |
run: sudo -u user -- usr/share/usability-misc/dist-installer-cli-standalone --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/share/usability-misc/dist-installer-cli-standalone --non-interactive --log-level=debug --no-boot --dev --ci --virtualbox-only --onion | |
- name: Run with non-English locale - Clearnet | |
run: sudo -u user -- env LC_ALL=ru_RU.UTF-8 LANG=ru_RU.UTF-8 LANGUAGE=ru_RU usr/share/usability-misc/dist-installer-cli-standalone --non-interactive --log-level=debug --no-boot --dev --ci --import-only=both --destroy-existing-guest | |
## 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/share/usability-misc/dist-installer-cli-standalone" | |
- name: Run Installer ShellCheck | |
run: shellcheck usr/share/usability-misc/dist-installer-cli-standalone |