Skip to content

Main

Main #614

Workflow file for this run

name: 'Main'
on:
push:
tags: ['*']
branches: ['*']
pull_request:
branches: ['*']
schedule:
- cron: '42 02 * * *'
workflow_dispatch:
permissions: {}
jobs:
lint-shellcheck-stable:
name: 'Lint with ShellCheck'
runs-on: 'ubuntu-latest'
permissions:
contents: 'read'
container:
image: 'docker.io/koalaman/shellcheck-alpine:stable'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file make'
- name: 'Print ShellCheck version'
run: 'shellcheck --version'
- name: 'Checkout project'
uses: 'actions/checkout@v4'
- name: 'Lint project'
run: 'make lint'
test-debian-latest:
name: 'Test on Debian'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
permissions:
contents: 'read'
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@v4'
- name: 'Test project'
run: 'make test-all'
test-ubuntu-latest:
name: 'Test on Ubuntu'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
permissions:
contents: 'read'
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@v4'
- name: 'Test project'
run: 'make test-all'
test-fedora-latest:
name: 'Test on Fedora'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
permissions:
contents: 'read'
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@v4'
- name: 'Test project'
run: 'make test-all'
test-rockylinux-latest:
name: 'Test on Rocky Linux'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
permissions:
contents: 'read'
container: 'docker.io/rockylinux:9'
steps:
- name: 'Install packages'
run: 'dnf install -y ca-certificates curl-minimal findutils file idn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@v4'
- name: 'Test project'
run: 'make test-all'
test-opensuse-latest:
name: 'Test on openSUSE'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
permissions:
contents: 'read'
container: 'docker.io/opensuse/tumbleweed:latest'
steps:
- name: 'Install packages'
run: 'zypper install -y ca-certificates curl file gawk gzip libidn2-tools make tar'
- name: 'Checkout project'
uses: 'actions/checkout@v4'
- name: 'Test project'
run: 'make test-all'
test-archlinux-latest:
name: 'Test on Arch Linux'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
permissions:
contents: 'read'
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@v4'
- name: 'Test project'
run: 'make test-all'
test-alpine-latest:
name: 'Test on Alpine Linux'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
permissions:
contents: 'read'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file idn2-utils make'
- name: 'Checkout project'
uses: 'actions/checkout@v4'
- 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'
permissions:
contents: 'read'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file idn2-utils 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@v4'
- 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'
permissions:
contents: 'read'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file idn2-utils 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@v4'
- 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'
permissions:
contents: 'read'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file idn2-utils 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@v4'
- 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'
permissions:
contents: 'read'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file idn2-utils 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@v4'
- 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'
permissions:
contents: 'read'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file idn2-utils make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache oksh'
- name: 'Print oksh version'
run: 'apk info --no-cache oksh'
- name: 'Checkout project'
uses: 'actions/checkout@v4'
- 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'
permissions:
contents: 'read'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file idn2-utils 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@v4'
- 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'
permissions:
contents: 'read'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file idn2-utils 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@v4'
- 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'
permissions:
contents: 'read'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file idn2-utils 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@v4'
- 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'
permissions:
contents: 'read'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file idn2-utils 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@v4'
- name: 'Test project'
run: 'make test-all'
test-alpine-latest-awk-nawk:
name: 'Test on Alpine Linux (nawk awk implementation)'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
permissions:
contents: 'read'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file idn2-utils make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache nawk --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community'
- name: 'Print nawk version'
run: 'apk info --no-cache nawk'
- name: 'Set default awk implementation'
run: 'ln -sf "$(command -v nawk)" /usr/bin/awk'
- name: 'Checkout project'
uses: 'actions/checkout@v4'
- 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'
permissions:
contents: 'read'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file idn2-utils 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@v4'
- name: 'Test project'
run: 'make test-all'
test-openwrt-latest:
name: 'Test on OpenWrt'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
permissions:
contents: 'read'
container: 'docker.io/openwrt/rootfs:x86_64-22.03-SNAPSHOT'
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@v4'
- 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'
permissions:
contents: 'read'
container: 'docker.io/openwrt/rootfs:x86_64-22.03-SNAPSHOT'
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@v4'
- name: 'Build project'
run: 'make test-all TEST_SHELL="$(command -v busybox) ash"'
test-macos-latest:
name: 'Test on macOS'
needs:
- 'lint-shellcheck-stable'
runs-on: 'macos-latest'
permissions:
contents: 'read'
steps:
- name: 'Install packages'
run: 'brew install curl libidn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@v4'
- 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'
permissions:
contents: 'read'
steps:
- name: 'Install packages'
run: 'brew install curl libidn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@v4'
- 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'
permissions:
contents: 'read'
steps:
- name: 'Install packages'
run: 'brew install curl libidn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@v4'
- 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'
permissions:
contents: 'read'
steps:
- name: 'Install packages'
run: 'brew install curl libidn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@v4'
- name: 'Test project'
run: 'make test-all TEST_SHELL="$(command -v dash)"'
test-haiku-latest:
name: 'Test on Haiku'
needs:
- 'lint-shellcheck-stable'
runs-on: 'ubuntu-latest'
permissions:
contents: 'read'
container: 'docker.io/hectorm/qemu-haiku:latest'
steps:
- name: 'Wait until the VM is ready'
run: 'container-init & timeout 600 vmshell exit 0'
- name: 'Install packages'
run: 'vmshell pkgman install -y ca_root_certificates curl file libidn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@v4'
- name: 'Copy project to VM'
run: 'vmshell mkdir ./hblock/; tar -cf - ./ | vmshell tar -xf - -C ./hblock/'
- name: 'Test project'
run: 'vmshell make -C ./hblock/ test-all'
build-debian-latest:
name: 'Build on Debian'
needs:
- 'test-debian-latest'
runs-on: 'ubuntu-latest'
permissions:
contents: 'read'
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@v4'
- name: 'Build project'
run: 'make hosts stats index'
build-ubuntu-latest:
name: 'Build on Ubuntu'
needs:
- 'test-ubuntu-latest'
runs-on: 'ubuntu-latest'
permissions:
contents: 'read'
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@v4'
- name: 'Build project'
run: 'make hosts stats index'
build-fedora-latest:
name: 'Build on Fedora'
needs:
- 'test-fedora-latest'
runs-on: 'ubuntu-latest'
permissions:
contents: 'read'
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@v4'
- name: 'Build project'
run: 'make hosts stats index'
build-rockylinux-latest:
name: 'Build on Rocky Linux'
needs:
- 'test-rockylinux-latest'
runs-on: 'ubuntu-latest'
permissions:
contents: 'read'
container: 'docker.io/rockylinux:9'
steps:
- name: 'Install packages'
run: 'dnf install -y ca-certificates curl-minimal findutils file idn2 make'
- name: 'Checkout project'
uses: 'actions/checkout@v4'
- name: 'Build project'
run: 'make hosts stats index'
build-opensuse-latest:
name: 'Build on openSUSE'
needs:
- 'test-opensuse-latest'
runs-on: 'ubuntu-latest'
permissions:
contents: 'read'
container: 'docker.io/opensuse/tumbleweed:latest'
steps:
- name: 'Install packages'
run: 'zypper install -y ca-certificates curl file gawk gzip libidn2-tools make tar'
- name: 'Checkout project'
uses: 'actions/checkout@v4'
- name: 'Build project'
run: 'make hosts stats index'
build-archlinux-latest:
name: 'Build on Arch Linux'
needs:
- 'test-archlinux-latest'
runs-on: 'ubuntu-latest'
permissions:
contents: 'read'
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@v4'
- 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-nawk'
- 'test-alpine-latest-awk-busybox-awk'
runs-on: 'ubuntu-latest'
permissions:
contents: 'read'
container: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file idn2-utils make'
- name: 'Checkout project'
uses: 'actions/checkout@v4'
- 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'
permissions:
contents: 'read'
container: 'docker.io/openwrt/rootfs:x86_64-22.03-SNAPSHOT'
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@v4'
- 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'
permissions:
contents: 'read'
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@v4'
- 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'
permissions:
contents: 'read'
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@v4'
- 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'
permissions:
contents: 'read'
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@v4'
- 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'
permissions:
contents: 'read'
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@v4'
- 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'
permissions:
contents: 'read'
container:
image: 'docker.io/alpine:latest'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file idn2-utils 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@v4'
- 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'
permissions:
contents: 'read'
container:
image: 'docker.io/node:current-alpine'
steps:
- name: 'Install packages'
run: 'apk add --no-cache ca-certificates curl file make'
- name: 'Install packages (2nd stage)'
run: 'apk add --no-cache m4 rsync'
- name: 'Checkout project'
uses: 'actions/checkout@v4'
- name: 'Package project'
run: |
make package-npm
mv ./dist/ ./dist-package-npm/
npm install -g ./dist-package-npm/packages/hblock-*.tgz
command hblock -v