Update GitHub Actions build configuration (#609)
* ci: bump GHA ubuntu jobs (22->24, 20->22) * ci: add GHA job for CentOS-7 on self-managed Docker * ci: add jobs for CentOS-8 and Rocky-9 on GHA-managed Docker
This commit is contained in:
162
.github/workflows/ci-scripts-build.yml
vendored
162
.github/workflows/ci-scripts-build.yml
vendored
@ -50,9 +50,9 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
# Job names also name artifacts, character limitations apply
|
# Job names also name artifacts, character limitations apply
|
||||||
include:
|
include:
|
||||||
- os: ubuntu-22.04
|
- os: ubuntu-24.04
|
||||||
cmp: gcc-12
|
cmp: gcc
|
||||||
name: "Ub-22 gcc-12 c++20 Werror"
|
name: "Ub-24 gcc-13 c++20 Werror"
|
||||||
# Turn all warnings into errors,
|
# Turn all warnings into errors,
|
||||||
# except for those we could not fix (yet).
|
# except for those we could not fix (yet).
|
||||||
# Remove respective -Wno-error=... flag once it is fixed.
|
# Remove respective -Wno-error=... flag once it is fixed.
|
||||||
@ -73,79 +73,79 @@ jobs:
|
|||||||
-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3'
|
-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3'
|
||||||
CMD_LDFLAGS=-Wl,-z,relro"
|
CMD_LDFLAGS=-Wl,-z,relro"
|
||||||
|
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-22.04
|
||||||
cmp: gcc
|
cmp: gcc
|
||||||
configuration: default
|
configuration: default
|
||||||
cross: "windows-x64-mingw"
|
cross: "windows-x64-mingw"
|
||||||
name: "Ub-20 gcc + MinGW"
|
name: "Ub-22 gcc + MinGW"
|
||||||
|
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-22.04
|
||||||
cmp: gcc
|
cmp: gcc
|
||||||
configuration: static
|
configuration: static
|
||||||
cross: "windows-x64-mingw"
|
cross: "windows-x64-mingw"
|
||||||
name: "Ub-20 gcc + MinGW, static"
|
name: "Ub-22 gcc + MinGW, static"
|
||||||
|
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-22.04
|
||||||
cmp: gcc
|
cmp: gcc
|
||||||
configuration: static
|
configuration: static
|
||||||
extra: "CMD_CXXFLAGS=-std=c++11"
|
extra: "CMD_CXXFLAGS=-std=c++11"
|
||||||
name: "Ub-20 gcc C++11, static"
|
name: "Ub-22 gcc C++11, static"
|
||||||
|
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-22.04
|
||||||
cmp: gcc
|
cmp: gcc
|
||||||
configuration: static
|
configuration: static
|
||||||
extra: "CMD_CFLAGS=-funsigned-char CMD_CXXFLAGS=-funsigned-char"
|
extra: "CMD_CFLAGS=-funsigned-char CMD_CXXFLAGS=-funsigned-char"
|
||||||
name: "Ub-20 gcc unsigned char"
|
name: "Ub-22 gcc unsigned char"
|
||||||
|
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-22.04
|
||||||
cmp: clang
|
cmp: clang
|
||||||
configuration: default
|
configuration: default
|
||||||
name: "Ub-20 clang"
|
name: "Ub-22 clang"
|
||||||
|
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-22.04
|
||||||
cmp: clang
|
cmp: clang
|
||||||
configuration: default
|
configuration: default
|
||||||
extra: "CMD_CXXFLAGS=-std=c++11"
|
extra: "CMD_CXXFLAGS=-std=c++11"
|
||||||
name: "Ub-20 clang C++11"
|
name: "Ub-22 clang C++11"
|
||||||
|
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-22.04
|
||||||
cmp: gcc
|
cmp: gcc
|
||||||
configuration: default
|
configuration: default
|
||||||
cross: "RTEMS-pc686-qemu@5"
|
cross: "RTEMS-pc686-qemu@5"
|
||||||
name: "Ub-20 gcc + RT-5.1 pc686"
|
name: "Ub-22 gcc + RT-5.1 pc686"
|
||||||
|
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-22.04
|
||||||
cmp: gcc
|
cmp: gcc
|
||||||
configuration: default
|
configuration: default
|
||||||
cross: "RTEMS-beatnik@5"
|
cross: "RTEMS-beatnik@5"
|
||||||
test: NO
|
test: NO
|
||||||
name: "Ub-20 gcc + RT-5.1 beatnik"
|
name: "Ub-22 gcc + RT-5.1 beatnik"
|
||||||
|
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-22.04
|
||||||
cmp: gcc
|
cmp: gcc
|
||||||
configuration: default
|
configuration: default
|
||||||
cross: "RTEMS-xilinx_zynq_a9_qemu@5"
|
cross: "RTEMS-xilinx_zynq_a9_qemu@5"
|
||||||
test: NO
|
test: NO
|
||||||
name: "Ub-20 gcc + RT-5.1 xilinx_zynq_a9_qemu"
|
name: "Ub-22 gcc + RT-5.1 xilinx_zynq_a9_qemu"
|
||||||
|
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-22.04
|
||||||
cmp: gcc
|
cmp: gcc
|
||||||
configuration: default
|
configuration: default
|
||||||
cross: "RTEMS-uC5282@5"
|
cross: "RTEMS-uC5282@5"
|
||||||
test: NO
|
test: NO
|
||||||
name: "Ub-20 gcc + RT-5.1 uC5282"
|
name: "Ub-22 gcc + RT-5.1 uC5282"
|
||||||
|
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-22.04
|
||||||
cmp: gcc
|
cmp: gcc
|
||||||
configuration: default
|
configuration: default
|
||||||
name: "Ub-20 gcc + RT-4.10"
|
name: "Ub-22 gcc + RT-4.10"
|
||||||
cross: "RTEMS-pc386-qemu@4.10"
|
cross: "RTEMS-pc386-qemu@4.10"
|
||||||
test: NO
|
test: NO
|
||||||
|
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-22.04
|
||||||
cmp: gcc
|
cmp: gcc
|
||||||
configuration: default
|
configuration: default
|
||||||
name: "Ub-20 gcc + RT-4.9"
|
name: "Ub-22 gcc + RT-4.9"
|
||||||
cross: "RTEMS-pc386-qemu@4.9"
|
cross: "RTEMS-pc386-qemu@4.9"
|
||||||
|
|
||||||
- os: macos-latest
|
- os: macos-latest
|
||||||
@ -239,10 +239,15 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
# Job names also name artifacts, character limitations apply
|
# Job names also name artifacts, character limitations apply
|
||||||
include:
|
include:
|
||||||
#- name: "CentOS-7"
|
- name: "CentOS-8"
|
||||||
# image: centos:7
|
image: centos:8
|
||||||
# cmp: gcc
|
cmp: gcc
|
||||||
# configuration: default
|
configuration: default
|
||||||
|
|
||||||
|
- name: "Rocky-9"
|
||||||
|
image: rockylinux:9
|
||||||
|
cmp: gcc
|
||||||
|
configuration: default
|
||||||
|
|
||||||
- name: "Fedora-33"
|
- name: "Fedora-33"
|
||||||
image: fedora:33
|
image: fedora:33
|
||||||
@ -255,47 +260,29 @@ jobs:
|
|||||||
configuration: default
|
configuration: default
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: "Build newer Git"
|
- name: "Fix repo URLs on CentOS-8"
|
||||||
# actions/checkout@v2 wants git >=2.18
|
# centos:8 is frozen, repos are in the vault
|
||||||
# centos:7 has 1.8
|
if: matrix.image=='centos:8'
|
||||||
if: matrix.image=='centos:7'
|
|
||||||
run: |
|
run: |
|
||||||
yum -y install curl make gcc curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker
|
sed -i -e "s|mirrorlist=|#mirrorlist=|" \
|
||||||
curl https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.29.0.tar.gz | tar -xz
|
-e "s|#baseurl=http://mirror|baseurl=http://vault|" \
|
||||||
cd git-*
|
/etc/yum.repos.d/CentOS-Linux-{BaseOS,AppStream,Extras,Plus}.repo
|
||||||
make -j2 prefix=/usr/local all
|
|
||||||
make prefix=/usr/local install
|
|
||||||
cd ..
|
|
||||||
rm -rf git-*
|
|
||||||
type -a git
|
|
||||||
git --version
|
|
||||||
- name: "Redhat setup"
|
- name: "Redhat setup"
|
||||||
run: |
|
run: |
|
||||||
dnfyum() {
|
dnf -y install python3 gdb make perl gcc-c++ glibc-devel readline-devel ncurses-devel perl-devel perl-Test-Simple
|
||||||
dnf -y "$@" || yum -y "$@"
|
git --version || dnf -y install git
|
||||||
return $?
|
python3 --version
|
||||||
}
|
|
||||||
dnfyum install python3 gdb make perl gcc-c++ glibc-devel readline-devel ncurses-devel perl-devel perl-Test-Simple
|
|
||||||
git --version || dnfyum install git
|
|
||||||
# rather than just bite the bullet and link python3 -> python,
|
|
||||||
# people would rather just break all existing scripts...
|
|
||||||
[ -e /usr/bin/python ] || ln -sf python3 /usr/bin/python
|
|
||||||
python --version
|
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
- name: Automatic core dumper analysis
|
- name: Automatic core dumper analysis
|
||||||
uses: mdavidsaver/ci-core-dumper@master
|
uses: mdavidsaver/ci-core-dumper@master
|
||||||
if: matrix.image!='centos:7'
|
|
||||||
- name: Automatic core dumper analysis
|
|
||||||
uses: mdavidsaver/ci-core-dumper@node16
|
|
||||||
if: matrix.image=='centos:7'
|
|
||||||
- name: Prepare and compile dependencies
|
- name: Prepare and compile dependencies
|
||||||
run: python .ci/cue.py prepare
|
run: python3 .ci/cue.py prepare
|
||||||
- name: Build main module
|
- name: Build main module
|
||||||
run: python .ci/cue.py build
|
run: python3 .ci/cue.py build
|
||||||
- name: Run main module tests
|
- name: Run main module tests
|
||||||
run: python .ci/cue.py -T 20M test
|
run: python3 .ci/cue.py -T 20M test
|
||||||
- name: Upload tapfiles Artifact
|
- name: Upload tapfiles Artifact
|
||||||
if: ${{ always() }}
|
if: ${{ always() }}
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
@ -305,4 +292,55 @@ jobs:
|
|||||||
if-no-files-found: ignore
|
if-no-files-found: ignore
|
||||||
- name: Collect and show test results
|
- name: Collect and show test results
|
||||||
if: ${{ always() }}
|
if: ${{ always() }}
|
||||||
run: python .ci/cue.py -T 5M test-results
|
run: python3 .ci/cue.py -T 5M test-results
|
||||||
|
|
||||||
|
build-docker:
|
||||||
|
name: Docker CentOS-7
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
CMP: gcc
|
||||||
|
BCFG: default
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
submodules: true
|
||||||
|
|
||||||
|
- name: Run...
|
||||||
|
run: |
|
||||||
|
env > env.list
|
||||||
|
cat <<EOF > runit.sh
|
||||||
|
#!/bin/sh
|
||||||
|
set -e -x
|
||||||
|
cd /io
|
||||||
|
id
|
||||||
|
|
||||||
|
sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo
|
||||||
|
sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/*.repo
|
||||||
|
sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/*.repo
|
||||||
|
yum -y install epel-release
|
||||||
|
yum -y install \
|
||||||
|
curl make gcc curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker \
|
||||||
|
python3 gdb make perl gcc-c++ glibc-devel readline-devel ncurses-devel perl-devel perl-Test-Simple \
|
||||||
|
libevent-devel sudo re2c
|
||||||
|
[ -e /usr/bin/python ] || ln -sf /usr/bin/python3 /usr/bin/python
|
||||||
|
|
||||||
|
# fake out cue.py
|
||||||
|
ln -s /bin/true /usr/bin/apt-get
|
||||||
|
|
||||||
|
# quiet warnings spam from perl
|
||||||
|
export LANG=C
|
||||||
|
|
||||||
|
python --version
|
||||||
|
python .ci/cue.py prepare
|
||||||
|
python .ci/cue.py build
|
||||||
|
python .ci/cue.py -T 15M test
|
||||||
|
python .ci/cue.py test-results
|
||||||
|
EOF
|
||||||
|
chmod +x runit.sh
|
||||||
|
docker run --rm --quiet \
|
||||||
|
--pull=always \
|
||||||
|
--env-file env.list \
|
||||||
|
-v `pwd`:/io \
|
||||||
|
centos:7 \
|
||||||
|
/io/runit.sh
|
||||||
|
Reference in New Issue
Block a user