Skip to content

build

build #365

Workflow file for this run

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