uk_freeview: remove invalid control codes (#244) #232
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: build | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
schedule: | |
- cron: "0 0 * * 0" | |
jobs: | |
linux-build: | |
name: Build on ${{ matrix.name }} | |
runs-on: ubuntu-latest | |
env: | |
RPM_PKG_MGR: dnf | |
DEBIAN_FRONTEND: noninteractive | |
TZ: Etc/UTC | |
strategy: | |
matrix: | |
include: | |
- container: ubuntu:16.04 | |
name: Ubuntu 16.04 LTS (Xenial Xerus) | |
- container: ubuntu:18.04 | |
name: Ubuntu 18.04 LTS (Bionic Beaver) | |
- container: ubuntu:20.04 | |
name: Ubuntu 20.04 LTS (Focal Fossa) | |
- container: ubuntu:22.04 | |
name: Ubuntu 22.04 LTS (Jammy Jellyfish) | |
- container: ubuntu:23.04 | |
name: Ubuntu 23.04 (Lunar Lobster) | |
- container: ubuntu:23.10 | |
name: Ubuntu 23.10 (Mantic Minotaur) | |
- container: ubuntu:24.04 | |
name: Ubuntu 24.04 LTS (Noble Numbat) | |
- container: debian:buster | |
name: Debian 10 (Buster) | |
- container: debian:bullseye | |
name: Debian 11 (Bullseye) | |
- container: debian:bookworm | |
name: Debian 12 (Bookworm) | |
- container: fedora:34 | |
name: Fedora 34 | |
- container: fedora:35 | |
name: Fedora 35 | |
- container: fedora:36 | |
name: Fedora 36 | |
- container: fedora:37 | |
name: Fedora 37 | |
- container: fedora:38 | |
name: Fedora 38 | |
- container: fedora:39 | |
name: Fedora 39 | |
- container: quay.io/centos/centos:centos7 | |
name: CentOS 7 | |
- container: quay.io/centos/centos:stream8 | |
name: CentOS Stream 8 | |
- container: quay.io/centos/centos:stream9 | |
name: CentOS Stream 9 | |
- container: alpine:3.17 | |
name: Alpine Linux 3.17 | |
fail-fast: false | |
container: | |
image: ${{ matrix.container }} | |
steps: | |
- name: Detect OS release | |
run: | | |
. /etc/os-release && echo "OS_RELEASE_ID=$ID" >> $GITHUB_ENV | |
. /etc/os-release && echo "OS_RELEASE_VERSION=$VERSION_ID" >> $GITHUB_ENV | |
. /etc/os-release && echo "OS_RELEASE_VERSION_MAJOR=${VERSION_ID%%.*}" >> $GITHUB_ENV | |
- name: Use archived repositories on EL 8 | |
run: | | |
# CentOS 8 reached EOL 31 December 2021. | |
# The repositories configured in the container are not working any more. | |
# Use vault.centos.org package archive instead. | |
find /etc/yum.repos.d/ -type f -exec sed -i 's/mirrorlist=/#mirrorlist=/g' {} + | |
find /etc/yum.repos.d/ -type f -exec sed -i 's/#baseurl=/baseurl=/g' {} + | |
find /etc/yum.repos.d/ -type f -exec sed -i 's/mirror.centos.org/vault.centos.org/g' {} + | |
if: | | |
env.OS_RELEASE_ID == 'centos' && env.OS_RELEASE_VERSION == '8' | |
- name: Adjust package manager for EL 7 | |
run: echo "RPM_PKG_MGR=yum" >> $GITHUB_ENV | |
if: | | |
env.OS_RELEASE_ID == 'centos' && env.OS_RELEASE_VERSION == '7' | |
- name: Add dnf plugins for recent EL | |
run: ${{env.RPM_PKG_MGR}} install -y dnf-plugins-core | |
if: | | |
env.OS_RELEASE_ID == 'centos' && env.RPM_PKG_MGR == 'dnf' | |
- name: Add powertools repo for EL 8 | |
run: ${{env.RPM_PKG_MGR}} config-manager --set-enabled powertools | |
if: | | |
env.OS_RELEASE_ID == 'centos' && env.OS_RELEASE_VERSION == '8' | |
- name: Add CRB repo for EL 9 | |
run: ${{env.RPM_PKG_MGR}} config-manager --set-enabled crb | |
if: | | |
env.OS_RELEASE_ID == 'centos' && env.OS_RELEASE_VERSION == '9' | |
- name: Add EPEL repo for EL linux | |
run: ${{env.RPM_PKG_MGR}} -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-${{env.OS_RELEASE_VERSION_MAJOR}}.noarch.rpm | |
if: | | |
env.OS_RELEASE_ID == 'centos' | |
- name: Update Debian OS | |
run: | | |
apt-get update -q -y | |
apt-get upgrade -q -y | |
if: | | |
env.OS_RELEASE_ID == 'debian' || env.OS_RELEASE_ID == 'ubuntu' | |
- name: Update Redhat OS | |
run: ${{env.RPM_PKG_MGR}} upgrade -y | |
if: | | |
env.OS_RELEASE_ID == 'centos' || env.OS_RELEASE_ID == 'fedora' | |
- name: Update Alpine Linux | |
run: | | |
apk update | |
apk upgrade | |
if: | | |
env.OS_RELEASE_ID == 'alpine' | |
- name: Install perl requirements for Debian systems | |
run: > | |
apt-get install -q -y | |
libarchive-zip-perl | |
libcgi-pm-perl | |
libdata-dump-perl | |
libdate-calc-perl | |
libdate-manip-perl | |
libdatetime-format-iso8601-perl | |
libdatetime-format-sqlite-perl | |
libdatetime-format-strptime-perl | |
libdatetime-perl | |
libdatetime-timezone-perl | |
libdbd-sqlite3-perl | |
libdbi-perl | |
libfile-chdir-perl | |
libfile-homedir-perl | |
libfile-slurp-perl | |
libfile-which-perl | |
libhtml-parser-perl | |
libhtml-tree-perl | |
libhttp-cache-transparent-perl | |
libhttp-cookies-perl | |
libhttp-message-perl | |
libio-stringy-perl | |
libjson-perl | |
libjson-xs-perl | |
liblingua-preferred-perl | |
liblinux-dvb-perl | |
liblist-moreutils-perl | |
liblog-tracemessages-perl | |
liblwp-protocol-https-perl | |
liblwp-useragent-determined-perl | |
libperlio-gzip-perl | |
libsoap-lite-perl | |
libterm-progressbar-perl | |
libterm-readkey-perl | |
libtimedate-perl | |
libtk-tablematrix-perl | |
libtry-tiny-perl | |
libunicode-string-perl | |
liburi-encode-perl | |
liburi-perl | |
libwww-perl | |
libxml-dom-perl | |
libxml-libxml-perl | |
libxml-libxslt-perl | |
libxml-parser-perl | |
libxml-simple-perl | |
libxml-treepp-perl | |
libxml-twig-perl | |
libxml-writer-perl | |
make | |
perl | |
perl-tk | |
if: | | |
env.OS_RELEASE_ID == 'debian' || env.OS_RELEASE_ID == 'ubuntu' | |
- name: Install perl requirements for Redhat systems | |
run: > | |
${{env.RPM_PKG_MGR}} install -y | |
make | |
perl | |
perl-Archive-Zip | |
perl-CGI | |
perl-Data-Dumper | |
perl-Date-Calc | |
perl-Date-Manip | |
perl-DateTime | |
perl-DateTime-Format-ISO8601 | |
perl-DateTime-Format-SQLite | |
perl-DateTime-Format-Strptime | |
perl-DBD-SQLite | |
perl-DBI | |
perl-Digest-SHA | |
perl-ExtUtils-MakeMaker | |
perl-File-chdir | |
perl-File-HomeDir | |
perl-File-Slurp | |
perl-File-Temp | |
perl-File-Which | |
perl-Getopt-Long | |
perl-HTML-Parser | |
perl-HTML-Tree | |
perl-HTTP-Cache-Transparent | |
perl-HTTP-Cookies | |
perl-HTTP-Message | |
perl-IO-stringy | |
perl-JSON | |
perl-JSON-XS | |
perl-libwww-perl | |
perl-Lingua-Preferred | |
perl-List-MoreUtils | |
perl-LWP-Protocol-https | |
perl-LWP-UserAgent-Determined | |
perl-Memoize | |
perl-PerlIO-gzip | |
perl-SOAP-Lite | |
perl-Term-ProgressBar | |
perl-TermReadKey | |
perl-Time-HiRes | |
perl-Time-Local | |
perl-Time-Piece | |
perl-TimeDate | |
perl-Tk | |
perl-Tk-TableMatrix | |
perl-Try-Tiny | |
perl-Unicode-String | |
perl-URI | |
perl-URI-Encode | |
perl-XML-DOM | |
perl-XML-LibXML | |
perl-XML-LibXSLT | |
perl-XML-Parser | |
perl-XML-Simple | |
perl-XML-TreePP | |
perl-XML-Twig | |
perl-XML-Writer | |
if: | | |
env.OS_RELEASE_ID == 'centos' || env.OS_RELEASE_ID == 'fedora' | |
- name: Install perl requirements for Alpine Linux | |
run: > | |
apk add | |
perl-archive-zip | |
perl-compress-raw-zlib | |
perl-date-manip | |
perl-datetime-format-iso8601 | |
perl-datetime-format-strptime | |
perl-dbd-sqlite | |
perl-dbi | |
perl-file-which | |
perl-file-slurp | |
perl-html-parser | |
perl-io-gzip | |
perl-io-stringy | |
perl-json | |
perl-json-xs | |
perl-libwww | |
perl-lingua-en-numbers-ordinate | |
perl-lingua-preferred | |
perl-list-moreutils | |
perl-lwp-protocol-https | |
perl-lwp-useragent-determined | |
perl-term-progressbar | |
perl-term-readkey | |
perl-timedate | |
perl-xml-dom | |
perl-xml-libxml | |
perl-xml-libxslt | |
perl-xml-parser | |
perl-xml-treepp | |
perl-xml-twig | |
perl-xml-writer | |
perl-unicode-string | |
perl-uri-encode | |
perl-dev | |
make | |
perl-app-cpanminus | |
perl-module-build | |
perl-test-fatal | |
perl-test-requiresinternet | |
if: | | |
env.OS_RELEASE_ID == 'alpine' | |
- name: Build missing perl requirements from CPAN for Alpine Linux | |
run: > | |
cpanm | |
DateTime::Format::SQLite | |
File::HomeDir | |
HTML::Tree | |
HTTP::Cache::Transparent | |
if: | | |
env.OS_RELEASE_ID == 'alpine' | |
- name: Checkout using legacy node version for legacy distros | |
uses: actions/checkout@v3 | |
if: | | |
( ( ( env.OS_RELEASE_ID == 'centos' && env.OS_RELEASE_VERSION_MAJOR < 8 ) || | |
( env.OS_RELEASE_ID == 'ubuntu' && env.OS_RELEASE_VERSION_MAJOR < 20 ) ) ) | |
- name: Checkout | |
uses: actions/checkout@v4 | |
if: | | |
( ! ( ( env.OS_RELEASE_ID == 'centos' && env.OS_RELEASE_VERSION_MAJOR < 8 ) || | |
( env.OS_RELEASE_ID == 'ubuntu' && env.OS_RELEASE_VERSION_MAJOR < 20 ) ) ) | |
- name: perl Makefile.PL | |
run: perl Makefile.PL -default NO_PACKLIST=1 NO_PERLLOCAL=1 | |
- name: make | |
run: make | |
- name: make test | |
run: make test | |
windows-build: | |
name: Build on Windows | |
# Build Windows self-extracting executables. | |
# Build 32-bit and 64-bit versions. | |
# Strictly speaking we only need the 32-bit version (since that will also run | |
# on 64-bit) but there may be some benefit in the 64-bit Perl for machine- | |
# intensive operations, such as tv_imdb. | |
strategy: | |
matrix: | |
target: [win64, win32] | |
uses: ./.github/workflows/winbuild.yml | |
with: | |
arch: ${{ matrix.target }} | |
secrets: inherit | |
macos-build: | |
name: Build on macOS | |
runs-on: macos-latest | |
strategy: | |
fail-fast: false | |
steps: | |
- name: Install dependencies | |
run: brew install perl cpanminus openssl sqlite tcl-tk | |
- name: Install perl requirements | |
run: > | |
perl /opt/homebrew/bin/cpanm --notest --no-interactive | |
Archive::Zip | |
CGI | |
CGI::Carp | |
Date::Manip | |
DateTime | |
DateTime::Format::ISO8601 | |
DateTime::Format::SQLite | |
DBD::SQLite | |
DBI | |
File::HomeDir | |
File::Slurp | |
HTML::FormatText | |
HTTP::Cache::Transparent | |
IO::Scalar | |
JSON | |
Lingua::EN::Numbers::Ordinate | |
Lingua::Preferred | |
List::MoreUtils | |
LWP::Protocol::https | |
LWP::UserAgent::Determined | |
Memoize | |
SOAP::Lite | |
Term::ProgressBar | |
Tk | |
Tk::TableMatrix | |
Unicode::String | |
Unicode::UTF8simple | |
URI::Encode | |
XML::DOM | |
XML::LibXML | |
XML::LibXSLT | |
XML::TreePP | |
XML::Twig | |
XML::Writer | |
- name: Show content of log files on failure | |
if: ${{ failure() }} | |
run: cat /Users/runner/.cpanm/work/*/build.log | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: perl Makefile.PL | |
run: perl Makefile.PL -default NO_PACKLIST=1 NO_PERLLOCAL=1 | |
- name: make | |
run: make | |
- name: make test | |
run: make test | |