Refactored CI

This commit is contained in:
Héctor Molinero Fernández 2021-12-25 15:05:09 +01:00
commit 51e60fc249
6 changed files with 753 additions and 678 deletions

View file

@ -1,128 +0,0 @@
name: 'Build'
on:
push:
branches: ['*']
pull_request:
branches: ['*']
schedule:
- cron: '42 02 * * *'
jobs:
build-debian-latest:
name: 'Build on Debian'
runs-on: 'ubuntu-latest'
container: 'docker.io/debian:latest'
steps:
- name: 'Update package index'
run: 'apt-get update'
- name: 'Install packages'
run: 'apt-get install -y ca-certificates curl file idn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Build project'
run: 'make hosts stats index'
build-ubuntu-latest:
name: 'Build on Ubuntu'
runs-on: 'ubuntu-latest'
container: 'docker.io/ubuntu:latest'
steps:
- name: 'Update package index'
run: 'apt-get update'
- name: 'Install packages'
run: 'apt-get install -y ca-certificates curl file idn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Build project'
run: 'make hosts stats index'
build-fedora-latest:
name: 'Build on Fedora'
runs-on: 'ubuntu-latest'
container: 'docker.io/fedora:latest'
steps:
- name: 'Install packages'
run: 'dnf install -y ca-certificates curl findutils file idn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Build project'
run: 'make hosts stats index'
build-rockylinux-latest:
name: 'Build on Rocky Linux'
runs-on: 'ubuntu-latest'
container: 'docker.io/rockylinux:latest'
steps:
- name: 'Install packages'
run: 'dnf install -y ca-certificates curl findutils file idn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Build project'
run: 'make hosts stats index'
build-opensuse-latest:
name: 'Build on openSUSE'
runs-on: 'ubuntu-latest'
container: 'docker.io/opensuse/tumbleweed:latest'
steps:
- name: 'Install packages'
run: 'zypper install -y ca-certificates curl file gzip libidn2-tools make tar'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Build project'
run: 'make hosts stats index'
build-archlinux-latest:
name: 'Build on Arch Linux'
runs-on: 'ubuntu-latest'
container: 'docker.io/archlinux:latest'
steps:
- name: 'Install packages'
run: 'pacman -Syu --noconfirm --needed ca-certificates curl file libidn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Build project'
run: 'make hosts stats index'
build-alpine-latest:
name: 'Build on Alpine Linux'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Build project'
run: 'make hosts stats index'
build-openwrt-latest:
name: 'Build on OpenWrt'
runs-on: 'ubuntu-latest'
container: 'docker.io/openwrtorg/rootfs:latest'
steps:
- name: 'Apply workarounds for GitHub Actions runner'
run: 'printf "ID=alpine\n" > /etc/_os-release'
- name: 'Update package index'
run: 'mkdir -p /var/run/; mkdir -p /var/lock/; opkg update ||:'
- name: 'Install packages'
run: 'opkg install ca-certificates curl file idn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Build project'
run: 'make hosts stats index'
build-macos-latest:
name: 'Build on macOS'
runs-on: 'macos-latest'
steps:
- name: 'Use dash as sh'
run: 'sudo ln -sf /bin/dash /var/select/sh'
- name: 'Install packages'
run: 'brew install curl libidn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Build project'
run: 'make hosts stats index'

695
.github/workflows/ci.yml vendored Normal file
View file

@ -0,0 +1,695 @@
name: 'CI'
on:
push:
tags: ['*']
branches: ['*']
pull_request:
branches: ['*']
schedule:
- cron: '42 02 * * *'
workflow_dispatch:
jobs:
lint-shellcheck-stable:
name: 'Lint with ShellCheck'
runs-on: 'ubuntu-latest'
container:
image: 'docker.io/koalaman/shellcheck-alpine:stable'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Print ShellCheck version'
run: 'shellcheck --version'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Lint project'
run: 'make lint'
test-debian-latest:
name: 'Test on Debian'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
container: 'docker.io/debian:latest'
steps:
- name: 'Update package index'
run: 'apt-get update'
- name: 'Install packages'
run: 'apt-get install -y ca-certificates curl file idn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'
test-ubuntu-latest:
name: 'Test on Ubuntu'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
container: 'docker.io/ubuntu:latest'
steps:
- name: 'Update package index'
run: 'apt-get update'
- name: 'Install packages'
run: 'apt-get install -y ca-certificates curl file idn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'
test-fedora-latest:
name: 'Test on Fedora'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
container: 'docker.io/fedora:latest'
steps:
- name: 'Install packages'
run: 'dnf install -y ca-certificates curl findutils file idn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'
test-rockylinux-latest:
name: 'Test on Rocky Linux'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
container: 'docker.io/rockylinux:latest'
steps:
- name: 'Install packages'
run: 'dnf install -y ca-certificates curl findutils file idn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'
test-opensuse-latest:
name: 'Test on openSUSE'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
container: 'docker.io/opensuse/leap:latest'
steps:
- name: 'Install packages'
run: 'zypper install -y ca-certificates curl file gzip libidn2-tools make tar'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'
test-archlinux-latest:
name: 'Test on Arch Linux'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
container: 'docker.io/archlinux:latest'
steps:
- name: 'Install packages'
run: 'pacman -Syu --noconfirm --needed ca-certificates curl file libidn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'
test-archlinux-latest-awk-nawk:
name: 'Test on Arch Linux (nawk awk implementation)'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
container: 'docker.io/archlinux:latest'
steps:
- name: 'Install packages'
run: 'pacman -Syu --noconfirm --needed ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'pacman -Syu --noconfirm --needed nawk'
- name: 'Print nawk version'
run: 'pacman -Qi nawk'
- name: 'Set default awk implementation'
run: 'ln -sf "$(command -v nawk)" /usr/bin/awk'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'
test-alpine-latest:
name: 'Test on Alpine Linux'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'
test-alpine-latest-shell-bash:
name: 'Test on Alpine Linux (bash shell)'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache bash'
- name: 'Print bash version'
run: 'apk info --no-cache bash'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all TEST_SHELL="$(command -v bash)"'
test-alpine-latest-shell-zsh:
name: 'Test on Alpine Linux (zsh shell)'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache zsh'
- name: 'Print zsh version'
run: 'apk info --no-cache zsh'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all TEST_SHELL="$(command -v zsh)"'
test-alpine-latest-shell-dash:
name: 'Test on Alpine Linux (dash shell)'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache dash'
- name: 'Print dash version'
run: 'apk info --no-cache dash'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all TEST_SHELL="$(command -v dash)"'
test-alpine-latest-shell-mksh:
name: 'Test on Alpine Linux (mksh shell)'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache mksh'
- name: 'Print mksh version'
run: 'apk info --no-cache mksh'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all TEST_SHELL="$(command -v mksh)"'
test-alpine-latest-shell-oksh:
name: 'Test on Alpine Linux (oksh shell)'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing oksh'
- name: 'Print oksh version'
run: 'apk info --no-cache oksh'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all TEST_SHELL="$(command -v oksh)"'
test-alpine-latest-shell-yash:
name: 'Test on Alpine Linux (yash shell)'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache yash'
- name: 'Print yash version'
run: 'apk info --no-cache yash'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all TEST_SHELL="$(command -v yash)"'
test-alpine-latest-shell-busybox-ash:
name: 'Test on Alpine Linux (BusyBox ash shell)'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache busybox'
- name: 'Print BusyBox version'
run: 'apk info --no-cache busybox'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all TEST_SHELL="$(command -v busybox) ash"'
test-alpine-latest-awk-gawk:
name: 'Test on Alpine Linux (gawk awk implementation)'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache gawk'
- name: 'Print gawk version'
run: 'apk info --no-cache gawk'
- name: 'Set default awk implementation'
run: 'ln -sf "$(command -v gawk)" /usr/bin/awk'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'
test-alpine-latest-awk-mawk:
name: 'Test on Alpine Linux (mawk awk implementation)'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache mawk'
- name: 'Print mawk version'
run: 'apk info --no-cache mawk'
- name: 'Set default awk implementation'
run: 'ln -sf "$(command -v mawk)" /usr/bin/awk'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'
test-alpine-latest-awk-busybox-awk:
name: 'Test on Alpine Linux (BusyBox awk implementation)'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache busybox'
- name: 'Print busybox version'
run: 'apk info --no-cache busybox'
- name: 'Set default awk implementation'
run: 'ln -sf "$(command -v busybox)" /usr/bin/awk'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'
test-openwrt-latest:
name: 'Test on OpenWrt'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
container: 'docker.io/openwrtorg/rootfs:latest'
steps:
- name: 'Apply workarounds for GitHub Actions runner'
run: 'printf "ID=alpine\n" > /etc/_os-release'
- name: 'Update package index'
run: 'mkdir -p /var/run/; mkdir -p /var/lock/; opkg update ||:'
- name: 'Install packages'
run: 'opkg install ca-certificates curl file idn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Build project'
run: 'make test-all'
test-openwrt-latest-shell-busybox-ash:
name: 'Test on OpenWrt (BusyBox ash shell)'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
container: 'docker.io/openwrtorg/rootfs:latest'
steps:
- name: 'Apply workarounds for GitHub Actions runner'
run: 'printf "ID=alpine\n" > /etc/_os-release'
- name: 'Update package index'
run: 'mkdir -p /var/run/; mkdir -p /var/lock/; opkg update ||:'
- name: 'Install packages'
run: 'opkg install ca-certificates curl file idn2 make'
- name: 'Install packages (2nd stage)'
run: 'opkg install busybox'
- name: 'Print BusyBox version'
run: 'opkg info busybox'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Build project'
run: 'make test-all TEST_SHELL="$(command -v busybox) ash"'
test-macos-latest:
name: 'Test on macOS bash'
needs:
- 'lint-shellcheck-stable'
runs-on: 'macos-latest'
steps:
- name: 'Install packages'
run: 'brew install curl libidn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'
test-macos-latest-shell-bash:
name: 'Test on macOS (bash shell)'
needs:
- 'lint-shellcheck-stable'
runs-on: 'macos-latest'
steps:
- name: 'Install packages'
run: 'brew install curl libidn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all TEST_SHELL="$(command -v bash)"'
test-macos-latest-shell-zsh:
name: 'Test on macOS (zsh shell)'
needs:
- 'lint-shellcheck-stable'
runs-on: 'macos-latest'
steps:
- name: 'Install packages'
run: 'brew install curl libidn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all TEST_SHELL="$(command -v zsh)"'
test-macos-latest-shell-dash:
name: 'Test on macOS (dash shell)'
needs:
- 'lint-shellcheck-stable'
runs-on: 'macos-latest'
steps:
- name: 'Install packages'
run: 'brew install curl libidn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all TEST_SHELL="$(command -v dash)"'
build-debian-latest:
name: 'Build on Debian'
needs:
- 'test-debian-latest'
runs-on: 'ubuntu-latest'
container: 'docker.io/debian:latest'
steps:
- name: 'Update package index'
run: 'apt-get update'
- name: 'Install packages'
run: 'apt-get install -y ca-certificates curl file idn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Build project'
run: 'make hosts stats index'
build-ubuntu-latest:
name: 'Build on Ubuntu'
needs:
- 'test-ubuntu-latest'
runs-on: 'ubuntu-latest'
container: 'docker.io/ubuntu:latest'
steps:
- name: 'Update package index'
run: 'apt-get update'
- name: 'Install packages'
run: 'apt-get install -y ca-certificates curl file idn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Build project'
run: 'make hosts stats index'
build-fedora-latest:
name: 'Build on Fedora'
needs:
- 'test-fedora-latest'
runs-on: 'ubuntu-latest'
container: 'docker.io/fedora:latest'
steps:
- name: 'Install packages'
run: 'dnf install -y ca-certificates curl findutils file idn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Build project'
run: 'make hosts stats index'
build-rockylinux-latest:
name: 'Build on Rocky Linux'
needs:
- 'test-rockylinux-latest'
runs-on: 'ubuntu-latest'
container: 'docker.io/rockylinux:latest'
steps:
- name: 'Install packages'
run: 'dnf install -y ca-certificates curl findutils file idn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Build project'
run: 'make hosts stats index'
build-opensuse-latest:
name: 'Build on openSUSE'
needs:
- 'test-opensuse-latest'
runs-on: 'ubuntu-latest'
container: 'docker.io/opensuse/tumbleweed:latest'
steps:
- name: 'Install packages'
run: 'zypper install -y ca-certificates curl file gzip libidn2-tools make tar'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Build project'
run: 'make hosts stats index'
build-archlinux-latest:
name: 'Build on Arch Linux'
needs:
- 'test-archlinux-latest'
- 'test-archlinux-latest-awk-nawk'
runs-on: 'ubuntu-latest'
container: 'docker.io/archlinux:latest'
steps:
- name: 'Install packages'
run: 'pacman -Syu --noconfirm --needed ca-certificates curl file libidn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Build project'
run: 'make hosts stats index'
build-alpine-latest:
name: 'Build on Alpine Linux'
needs:
- 'test-alpine-latest'
- 'test-alpine-latest-shell-bash'
- 'test-alpine-latest-shell-zsh'
- 'test-alpine-latest-shell-dash'
- 'test-alpine-latest-shell-mksh'
- 'test-alpine-latest-shell-oksh'
- 'test-alpine-latest-shell-yash'
- 'test-alpine-latest-shell-busybox-ash'
- 'test-alpine-latest-awk-gawk'
- 'test-alpine-latest-awk-mawk'
- 'test-alpine-latest-awk-busybox-awk'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Build project'
run: 'make hosts stats index'
build-openwrt-latest:
name: 'Build on OpenWrt'
needs:
- 'test-openwrt-latest'
- 'test-openwrt-latest-shell-busybox-ash'
runs-on: 'ubuntu-latest'
container: 'docker.io/openwrtorg/rootfs:latest'
steps:
- name: 'Apply workarounds for GitHub Actions runner'
run: 'printf "ID=alpine\n" > /etc/_os-release'
- name: 'Update package index'
run: 'mkdir -p /var/run/; mkdir -p /var/lock/; opkg update ||:'
- name: 'Install packages'
run: 'opkg install ca-certificates curl file idn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Build project'
run: 'make hosts stats index'
build-macos-latest:
name: 'Build on macOS'
needs:
- 'test-macos-latest'
- 'test-macos-latest-shell-bash'
- 'test-macos-latest-shell-zsh'
- 'test-macos-latest-shell-dash'
runs-on: 'macos-latest'
steps:
- name: 'Use dash as sh'
run: 'sudo ln -sf /bin/dash /var/select/sh'
- name: 'Install packages'
run: 'brew install curl libidn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Build project'
run: 'make hosts stats index'
package-deb:
name: 'Create deb package'
needs:
- 'build-debian-latest'
- 'build-ubuntu-latest'
runs-on: 'ubuntu-latest'
container:
image: 'docker.io/debian:latest'
steps:
- name: 'Update package index'
run: 'apt-get update'
- name: 'Install packages'
run: 'apt-get install -y ca-certificates curl file idn2 make'
- name: 'Install packages (2nd stage)'
run: 'apt-get install -y build-essential debhelper dpkg-dev m4 rsync'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Package project'
run: |
make package-deb
mv ./dist/ ./dist-package-deb/
apt install -y ./dist-package-deb/packages/hblock-*.deb
command hblock -v
package-rpm:
name: 'Create RPM package'
needs:
- 'build-fedora-latest'
- 'build-rockylinux-latest'
- 'build-opensuse-latest'
runs-on: 'ubuntu-latest'
container:
image: 'docker.io/fedora:latest'
steps:
- name: 'Install packages'
run: 'dnf install -y ca-certificates curl findutils file idn2 make'
- name: 'Install packages (2nd stage)'
run: 'dnf install -y m4 rpm-build rpmdevtools rsync systemd'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Package project'
run: |
make package-rpm
mv ./dist/ ./dist-package-rpm/
dnf install -y ./dist-package-rpm/packages/hblock-*.rpm
command hblock -v
package-pkgbuild:
name: 'Create PKGBUILD package'
needs:
- 'build-archlinux-latest'
runs-on: 'ubuntu-latest'
container:
image: 'docker.io/archlinux:latest'
steps:
- name: 'Install packages'
run: 'pacman -Syu --noconfirm --needed ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'pacman -Syu --noconfirm --needed base-devel m4 rsync sudo'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Package project'
run: |
mkdir ./dist/; chown nobody ./dist/
sudo -u nobody make package-pkgbuild
mv ./dist/ ./dist-package-pkgbuild/
pacman -U --noconfirm ./dist-package-pkgbuild/packages/hblock-*.pkg.tar.*
command hblock -v
package-apkbuild:
name: 'Create APKBUILD package'
needs:
- 'build-alpine-latest'
runs-on: 'ubuntu-latest'
container:
image: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache alpine-sdk m4 rsync sudo'
- name: 'Create unprivileged user and setup abuild'
run: |
adduser -D -G abuild build
printf "\n%s\n" "build ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
sudo -u build abuild-keygen -a -i -n
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Package project'
run: |
mkdir ./dist/; chown build ./dist/
sudo -u build make package-apkbuild
mv ./dist/ ./dist-package-apkbuild/
apk add --allow-untrusted ./dist-package-apkbuild/packages/hblock-*.apk
command hblock -v
package-npm:
name: 'Create npm package'
needs:
- 'build-alpine-latest'
runs-on: 'ubuntu-latest'
container:
image: 'docker.io/node:current-alpine'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache m4 rsync'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Package project'
run: |
make package-npm
mv ./dist/ ./dist-package-npm/
npm install -g ./dist-package-npm/packages/hblock-*.tgz
command hblock -v

View file

@ -1,26 +0,0 @@
name: 'Lint'
on:
push:
branches: ['*']
pull_request:
branches: ['*']
schedule:
- cron: '42 02 * * *'
jobs:
lint-shellcheck-stable:
name: 'Lint with ShellCheck'
runs-on: 'ubuntu-latest'
container:
image: 'docker.io/koalaman/shellcheck-alpine:stable'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Print ShellCheck version'
run: 'shellcheck --version'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Lint project'
run: 'make lint'

View file

@ -1,115 +0,0 @@
name: 'Package'
on:
push:
branches: ['*']
pull_request:
branches: ['*']
schedule:
- cron: '42 02 * * *'
jobs:
package-deb:
name: 'Create deb package'
runs-on: 'ubuntu-latest'
container:
image: 'docker.io/debian:latest'
steps:
- name: 'Update package index'
run: 'apt-get update'
- name: 'Install packages'
run: 'apt-get install -y ca-certificates curl file idn2 make'
- name: 'Install packages (2nd stage)'
run: 'apt-get install -y build-essential debhelper dpkg-dev m4 rsync'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Package project'
run: |
make package-deb
mv ./dist/ ./dist-package-deb/
apt install -y ./dist-package-deb/packages/hblock-*.deb
command hblock -v
package-rpm:
name: 'Create RPM package'
runs-on: 'ubuntu-latest'
container:
image: 'docker.io/fedora:latest'
steps:
- name: 'Install packages'
run: 'dnf install -y ca-certificates curl findutils file idn2 make'
- name: 'Install packages (2nd stage)'
run: 'dnf install -y m4 rpm-build rpmdevtools rsync systemd'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Package project'
run: |
make package-rpm
mv ./dist/ ./dist-package-rpm/
dnf install -y ./dist-package-rpm/packages/hblock-*.rpm
command hblock -v
package-pkgbuild:
name: 'Create PKGBUILD package'
runs-on: 'ubuntu-latest'
container:
image: 'docker.io/archlinux:latest'
steps:
- name: 'Install packages'
run: 'pacman -Syu --noconfirm --needed ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'pacman -Syu --noconfirm --needed base-devel m4 rsync sudo'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Package project'
run: |
mkdir ./dist/; chown nobody ./dist/
sudo -u nobody make package-pkgbuild
mv ./dist/ ./dist-package-pkgbuild/
pacman -U --noconfirm ./dist-package-pkgbuild/packages/hblock-*.pkg.tar.*
command hblock -v
package-apkbuild:
name: 'Create APKBUILD package'
runs-on: 'ubuntu-latest'
container:
image: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache alpine-sdk m4 rsync sudo'
- name: 'Create unprivileged user and setup abuild'
run: |
adduser -D -G abuild build
printf "\n%s\n" "build ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
sudo -u build abuild-keygen -a -i -n
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Package project'
run: |
mkdir ./dist/; chown build ./dist/
sudo -u build make package-apkbuild
mv ./dist/ ./dist-package-apkbuild/
apk add --allow-untrusted ./dist-package-apkbuild/packages/hblock-*.apk
command hblock -v
package-npm:
name: 'Create npm package'
runs-on: 'ubuntu-latest'
container:
image: 'docker.io/node:current-alpine'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache m4 rsync'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Package project'
run: |
make package-npm
mv ./dist/ ./dist-package-npm/
npm install -g ./dist-package-npm/packages/hblock-*.tgz
command hblock -v

View file

@ -1,363 +0,0 @@
name: 'Test'
on:
push:
branches: ['*']
pull_request:
branches: ['*']
schedule:
- cron: '42 02 * * *'
jobs:
test-debian-latest:
name: 'Test on Debian'
runs-on: 'ubuntu-latest'
container: 'docker.io/debian:latest'
steps:
- name: 'Update package index'
run: 'apt-get update'
- name: 'Install packages'
run: 'apt-get install -y ca-certificates curl file idn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'
test-ubuntu-latest:
name: 'Test on Ubuntu'
runs-on: 'ubuntu-latest'
container: 'docker.io/ubuntu:latest'
steps:
- name: 'Update package index'
run: 'apt-get update'
- name: 'Install packages'
run: 'apt-get install -y ca-certificates curl file idn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'
test-fedora-latest:
name: 'Test on Fedora'
runs-on: 'ubuntu-latest'
container: 'docker.io/fedora:latest'
steps:
- name: 'Install packages'
run: 'dnf install -y ca-certificates curl findutils file idn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'
test-rockylinux-latest:
name: 'Test on Rocky Linux'
runs-on: 'ubuntu-latest'
container: 'docker.io/rockylinux:latest'
steps:
- name: 'Install packages'
run: 'dnf install -y ca-certificates curl findutils file idn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'
test-opensuse-latest:
name: 'Test on openSUSE'
runs-on: 'ubuntu-latest'
container: 'docker.io/opensuse/leap:latest'
steps:
- name: 'Install packages'
run: 'zypper install -y ca-certificates curl file gzip libidn2-tools make tar'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'
test-archlinux-latest:
name: 'Test on Arch Linux'
runs-on: 'ubuntu-latest'
container: 'docker.io/archlinux:latest'
steps:
- name: 'Install packages'
run: 'pacman -Syu --noconfirm --needed ca-certificates curl file libidn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'
test-alpine-latest:
name: 'Test on Alpine Linux'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'
test-openwrt-latest:
name: 'Test on OpenWrt'
runs-on: 'ubuntu-latest'
container: 'docker.io/openwrtorg/rootfs:latest'
steps:
- name: 'Apply workarounds for GitHub Actions runner'
run: 'printf "ID=alpine\n" > /etc/_os-release'
- name: 'Update package index'
run: 'mkdir -p /var/run/; mkdir -p /var/lock/; opkg update ||:'
- name: 'Install packages'
run: 'opkg install ca-certificates curl file idn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Build project'
run: 'make test-all'
test-macos-latest:
name: 'Test on macOS bash'
runs-on: 'macos-latest'
steps:
- name: 'Install packages'
run: 'brew install curl libidn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'
test-alpine-edge-shell-bash:
name: 'Test on Alpine Linux Edge (bash)'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:edge'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache bash'
- name: 'Print bash version'
run: 'apk info --no-cache bash'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all TEST_SHELL="$(command -v bash)"'
test-alpine-edge-shell-zsh:
name: 'Test on Alpine Linux Edge (zsh)'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:edge'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache zsh'
- name: 'Print zsh version'
run: 'apk info --no-cache zsh'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all TEST_SHELL="$(command -v zsh)"'
test-alpine-edge-shell-dash:
name: 'Test on Alpine Linux Edge (dash)'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:edge'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache dash'
- name: 'Print dash version'
run: 'apk info --no-cache dash'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all TEST_SHELL="$(command -v dash)"'
test-alpine-edge-shell-mksh:
name: 'Test on Alpine Linux Edge (mksh)'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:edge'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache mksh'
- name: 'Print mksh version'
run: 'apk info --no-cache mksh'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all TEST_SHELL="$(command -v mksh)"'
test-alpine-edge-shell-oksh:
name: 'Test on Alpine Linux Edge (oksh)'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:edge'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing oksh'
- name: 'Print oksh version'
run: 'apk info --no-cache oksh'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all TEST_SHELL="$(command -v oksh)"'
test-alpine-edge-shell-yash:
name: 'Test on Alpine Linux Edge (yash)'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:edge'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache yash'
- name: 'Print yash version'
run: 'apk info --no-cache yash'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all TEST_SHELL="$(command -v yash)"'
test-alpine-edge-shell-busybox-ash:
name: 'Test on Alpine Linux Edge (BusyBox ash)'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:edge'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache busybox'
- name: 'Print BusyBox version'
run: 'apk info --no-cache busybox'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all TEST_SHELL="$(command -v busybox) ash"'
test-openwrt-latest-shell-busybox-ash:
name: 'Test on OpenWrt (BusyBox ash)'
runs-on: 'ubuntu-latest'
container: 'docker.io/openwrtorg/rootfs:latest'
steps:
- name: 'Apply workarounds for GitHub Actions runner'
run: 'printf "ID=alpine\n" > /etc/_os-release'
- name: 'Update package index'
run: 'mkdir -p /var/run/; mkdir -p /var/lock/; opkg update ||:'
- name: 'Install packages'
run: 'opkg install ca-certificates curl file idn2 make'
- name: 'Install packages (2nd stage)'
run: 'opkg install busybox'
- name: 'Print BusyBox version'
run: 'opkg info busybox'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Build project'
run: 'make test-all TEST_SHELL="$(command -v busybox) ash"'
test-macos-latest-shell-bash:
name: 'Test on macOS (bash)'
runs-on: 'macos-latest'
steps:
- name: 'Install packages'
run: 'brew install curl libidn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all TEST_SHELL="$(command -v bash)"'
test-macos-latest-shell-zsh:
name: 'Test on macOS (zsh)'
runs-on: 'macos-latest'
steps:
- name: 'Install packages'
run: 'brew install curl libidn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all TEST_SHELL="$(command -v zsh)"'
test-macos-latest-shell-dash:
name: 'Test on macOS (dash)'
runs-on: 'macos-latest'
steps:
- name: 'Install packages'
run: 'brew install curl libidn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all TEST_SHELL="$(command -v dash)"'
test-alpine-edge-awk-gawk:
name: 'Test on Alpine Linux Edge (gawk)'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:edge'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache gawk'
- name: 'Print gawk version'
run: 'apk info --no-cache gawk'
- name: 'Set default awk implementation'
run: 'ln -sf "$(command -v gawk)" /usr/bin/awk'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'
test-alpine-edge-awk-mawk:
name: 'Test on Alpine Linux Edge (mawk)'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:edge'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache mawk'
- name: 'Print mawk version'
run: 'apk info --no-cache mawk'
- name: 'Set default awk implementation'
run: 'ln -sf "$(command -v mawk)" /usr/bin/awk'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'
test-alpine-edge-awk-busybox-awk:
name: 'Test on Alpine Linux Edge (BusyBox awk)'
runs-on: 'ubuntu-latest'
container: 'docker.io/alpine:edge'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache busybox'
- name: 'Print busybox version'
run: 'apk info --no-cache busybox'
- name: 'Set default awk implementation'
run: 'ln -sf "$(command -v busybox)" /usr/bin/awk'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'
test-archlinux-latest-awk-nawk:
name: 'Test on Arch Linux (nawk)'
runs-on: 'ubuntu-latest'
container: 'docker.io/archlinux:latest'
steps:
- name: 'Install packages'
run: 'pacman -Syu --noconfirm --needed ca-certificates curl file libidn2 make'
- name: 'Install packages (2nd stage)'
run: 'pacman -Syu --noconfirm --needed nawk'
- name: 'Print nawk version'
run: 'pacman -Qi nawk'
- name: 'Set default awk implementation'
run: 'ln -sf "$(command -v nawk)" /usr/bin/awk'
- name: 'Checkout project'
uses: 'actions/checkout@main'
- name: 'Test project'
run: 'make test-all'

View file

@ -79,6 +79,19 @@ test-archlinux-latest:
script:
- 'make test-all'
test-archlinux-latest-awk-nawk:
stage: 'test'
needs:
- 'lint-shellcheck-stable'
image: 'docker.io/archlinux:latest'
before_script:
- 'pacman -Syu --noconfirm --needed ca-certificates curl file libidn2 make'
- 'pacman -Syu --noconfirm --needed nawk'
- 'pacman -Qi nawk'
script:
- 'ln -sf "$(command -v nawk)" /usr/bin/awk'
- 'make test-all'
test-alpine-latest:
stage: 'test'
needs:
@ -89,6 +102,129 @@ test-alpine-latest:
script:
- 'make test-all'
test-alpine-latest-shell-bash:
stage: 'test'
needs:
- 'lint-shellcheck-stable'
image: 'docker.io/alpine:latest'
before_script:
- 'apk add --no-cache ca-certificates curl file libidn2 make'
- 'apk add --no-cache bash'
- 'apk info --no-cache bash'
script:
- 'make test-all TEST_SHELL="$(command -v bash)"'
test-alpine-latest-shell-zsh:
stage: 'test'
needs:
- 'lint-shellcheck-stable'
image: 'docker.io/alpine:latest'
before_script:
- 'apk add --no-cache ca-certificates curl file libidn2 make'
- 'apk add --no-cache zsh'
- 'apk info --no-cache zsh'
script:
- 'make test-all TEST_SHELL="$(command -v zsh)"'
test-alpine-latest-shell-dash:
stage: 'test'
needs:
- 'lint-shellcheck-stable'
image: 'docker.io/alpine:latest'
before_script:
- 'apk add --no-cache ca-certificates curl file libidn2 make'
- 'apk add --no-cache dash'
- 'apk info --no-cache dash'
script:
- 'make test-all TEST_SHELL="$(command -v dash)"'
test-alpine-latest-shell-mksh:
stage: 'test'
needs:
- 'lint-shellcheck-stable'
image: 'docker.io/alpine:latest'
before_script:
- 'apk add --no-cache ca-certificates curl file libidn2 make'
- 'apk add --no-cache mksh'
- 'apk info --no-cache mksh'
script:
- 'make test-all TEST_SHELL="$(command -v mksh)"'
test-alpine-latest-shell-oksh:
stage: 'test'
needs:
- 'lint-shellcheck-stable'
image: 'docker.io/alpine:latest'
before_script:
- 'apk add --no-cache ca-certificates curl file libidn2 make'
- 'apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing oksh'
- 'apk info --no-cache oksh'
script:
- 'make test-all TEST_SHELL="$(command -v oksh)"'
test-alpine-latest-shell-yash:
stage: 'test'
needs:
- 'lint-shellcheck-stable'
image: 'docker.io/alpine:latest'
before_script:
- 'apk add --no-cache ca-certificates curl file libidn2 make'
- 'apk add --no-cache yash'
- 'apk info --no-cache yash'
script:
- 'make test-all TEST_SHELL="$(command -v yash)"'
test-alpine-latest-shell-busybox-ash:
stage: 'test'
needs:
- 'lint-shellcheck-stable'
image: 'docker.io/alpine:latest'
before_script:
- 'apk add --no-cache ca-certificates curl file libidn2 make'
- 'apk add --no-cache busybox'
- 'apk info --no-cache busybox'
script:
- 'make test-all TEST_SHELL="$(command -v busybox) ash"'
test-alpine-latest-awk-gawk:
stage: 'test'
needs:
- 'lint-shellcheck-stable'
image: 'docker.io/alpine:latest'
before_script:
- 'apk add --no-cache ca-certificates curl file libidn2 make'
- 'apk add --no-cache gawk'
- 'apk info --no-cache gawk'
script:
- 'ln -sf "$(command -v gawk)" /usr/bin/awk'
- 'make test-all'
test-alpine-latest-awk-mawk:
stage: 'test'
needs:
- 'lint-shellcheck-stable'
image: 'docker.io/alpine:latest'
before_script:
- 'apk add --no-cache ca-certificates curl file libidn2 make'
- 'apk add --no-cache mawk'
- 'apk info --no-cache mawk'
script:
- 'ln -sf "$(command -v mawk)" /usr/bin/awk'
- 'make test-all'
test-alpine-latest-awk-busybox-awk:
stage: 'test'
needs:
- 'lint-shellcheck-stable'
image: 'docker.io/alpine:latest'
before_script:
- 'apk add --no-cache ca-certificates curl file libidn2 make'
- 'apk add --no-cache busybox'
- 'apk info --no-cache busybox'
script:
- 'ln -sf "$(command -v busybox)" /usr/bin/awk'
- 'make test-all'
test-openwrt-latest:
stage: 'test'
needs:
@ -100,90 +236,6 @@ test-openwrt-latest:
script:
- 'make test-all'
test-alpine-edge-shell-bash:
stage: 'test'
needs:
- 'lint-shellcheck-stable'
image: 'docker.io/alpine:edge'
before_script:
- 'apk add --no-cache ca-certificates curl file libidn2 make'
- 'apk add --no-cache bash'
- 'apk info --no-cache bash'
script:
- 'make test-all TEST_SHELL="$(command -v bash)"'
test-alpine-edge-shell-zsh:
stage: 'test'
needs:
- 'lint-shellcheck-stable'
image: 'docker.io/alpine:edge'
before_script:
- 'apk add --no-cache ca-certificates curl file libidn2 make'
- 'apk add --no-cache zsh'
- 'apk info --no-cache zsh'
script:
- 'make test-all TEST_SHELL="$(command -v zsh)"'
test-alpine-edge-shell-dash:
stage: 'test'
needs:
- 'lint-shellcheck-stable'
image: 'docker.io/alpine:edge'
before_script:
- 'apk add --no-cache ca-certificates curl file libidn2 make'
- 'apk add --no-cache dash'
- 'apk info --no-cache dash'
script:
- 'make test-all TEST_SHELL="$(command -v dash)"'
test-alpine-edge-shell-mksh:
stage: 'test'
needs:
- 'lint-shellcheck-stable'
image: 'docker.io/alpine:edge'
before_script:
- 'apk add --no-cache ca-certificates curl file libidn2 make'
- 'apk add --no-cache mksh'
- 'apk info --no-cache mksh'
script:
- 'make test-all TEST_SHELL="$(command -v mksh)"'
test-alpine-edge-shell-oksh:
stage: 'test'
needs:
- 'lint-shellcheck-stable'
image: 'docker.io/alpine:edge'
before_script:
- 'apk add --no-cache ca-certificates curl file libidn2 make'
- 'apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing oksh'
- 'apk info --no-cache oksh'
script:
- 'make test-all TEST_SHELL="$(command -v oksh)"'
test-alpine-edge-shell-yash:
stage: 'test'
needs:
- 'lint-shellcheck-stable'
image: 'docker.io/alpine:edge'
before_script:
- 'apk add --no-cache ca-certificates curl file libidn2 make'
- 'apk add --no-cache yash'
- 'apk info --no-cache yash'
script:
- 'make test-all TEST_SHELL="$(command -v yash)"'
test-alpine-edge-shell-busybox-ash:
stage: 'test'
needs:
- 'lint-shellcheck-stable'
image: 'docker.io/alpine:edge'
before_script:
- 'apk add --no-cache ca-certificates curl file libidn2 make'
- 'apk add --no-cache busybox'
- 'apk info --no-cache busybox'
script:
- 'make test-all TEST_SHELL="$(command -v busybox) ash"'
test-openwrt-latest-shell-busybox-ash:
stage: 'test'
needs:
@ -197,58 +249,6 @@ test-openwrt-latest-shell-busybox-ash:
script:
- 'make test-all TEST_SHELL="$(command -v busybox) ash"'
test-alpine-edge-awk-gawk:
stage: 'test'
needs:
- 'lint-shellcheck-stable'
image: 'docker.io/alpine:edge'
before_script:
- 'apk add --no-cache ca-certificates curl file libidn2 make'
- 'apk add --no-cache gawk'
- 'apk info --no-cache gawk'
script:
- 'ln -sf "$(command -v gawk)" /usr/bin/awk'
- 'make test-all'
test-alpine-edge-awk-mawk:
stage: 'test'
needs:
- 'lint-shellcheck-stable'
image: 'docker.io/alpine:edge'
before_script:
- 'apk add --no-cache ca-certificates curl file libidn2 make'
- 'apk add --no-cache mawk'
- 'apk info --no-cache mawk'
script:
- 'ln -sf "$(command -v mawk)" /usr/bin/awk'
- 'make test-all'
test-alpine-edge-awk-busybox-awk:
stage: 'test'
needs:
- 'lint-shellcheck-stable'
image: 'docker.io/alpine:edge'
before_script:
- 'apk add --no-cache ca-certificates curl file libidn2 make'
- 'apk add --no-cache busybox'
- 'apk info --no-cache busybox'
script:
- 'ln -sf "$(command -v busybox)" /usr/bin/awk'
- 'make test-all'
test-archlinux-latest-awk-nawk:
stage: 'test'
needs:
- 'lint-shellcheck-stable'
image: 'docker.io/archlinux:latest'
before_script:
- 'pacman -Syu --noconfirm --needed ca-certificates curl file libidn2 make'
- 'pacman -Syu --noconfirm --needed nawk'
- 'pacman -Qi nawk'
script:
- 'ln -sf "$(command -v nawk)" /usr/bin/awk'
- 'make test-all'
build-debian-latest:
stage: 'build'
needs:
@ -325,6 +325,7 @@ build-archlinux-latest:
stage: 'build'
needs:
- 'test-archlinux-latest'
- 'test-archlinux-latest-awk-nawk'
image: 'docker.io/archlinux:latest'
before_script:
- 'pacman -Syu --noconfirm --needed ca-certificates curl file libidn2 make'
@ -339,6 +340,16 @@ build-alpine-latest:
stage: 'build'
needs:
- 'test-alpine-latest'
- 'test-alpine-latest-shell-bash'
- 'test-alpine-latest-shell-zsh'
- 'test-alpine-latest-shell-dash'
- 'test-alpine-latest-shell-mksh'
- 'test-alpine-latest-shell-oksh'
- 'test-alpine-latest-shell-yash'
- 'test-alpine-latest-shell-busybox-ash'
- 'test-alpine-latest-awk-gawk'
- 'test-alpine-latest-awk-mawk'
- 'test-alpine-latest-awk-busybox-awk'
image: 'docker.io/alpine:latest'
before_script:
- 'apk add --no-cache ca-certificates curl file libidn2 make'
@ -353,6 +364,7 @@ build-openwrt-latest:
stage: 'build'
needs:
- 'test-openwrt-latest'
- 'test-openwrt-latest-shell-busybox-ash'
image: 'docker.io/openwrtorg/rootfs:latest'
before_script:
- 'mkdir -p /var/run/; mkdir -p /var/lock/; opkg update ||:'