-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
ca24a63
commit c7277f3
Showing
4 changed files
with
108 additions
and
36 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,8 @@ | ||
name: Package Repository | ||
run-name: ${{ github.event_name == 'schedule' && '⏰ Scheduled build' || github.event.head_commit.message }} | ||
run-name: | | ||
${{ github.event_name == 'schedule' && '⏰ Scheduled build' || '' }} | ||
${{ github.event_name == 'push' && '🌱 Push Build -' || '' }} | ||
${{ github.event_name == 'push' && github.event.head_commit.message || '' }} | ||
on: | ||
schedule: | ||
|
@@ -18,7 +21,7 @@ jobs: | |
############################# | ||
|
||
ubuntu_debian: | ||
name: ${{ matrix.os.description }} | ||
name: 🐧 ${{ matrix.os.description }} Qt ${{ matrix.qt_version }} | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
|
@@ -33,6 +36,7 @@ jobs: | |
{ distribution: debian, codename: bookworm, description: Debian 12.x (Bookworm) }, | ||
{ distribution: debian, codename: trixie, description: Debian 13.x (Trixie) } | ||
] | ||
qt_version: [ '5', '6' ] | ||
include: | ||
# declare the following target_platform for all matrix jobs | ||
- target_platform: linux/amd64,linux/arm64,linux/arm/v7 | ||
|
@@ -43,6 +47,12 @@ jobs: | |
target_platform: linux/amd64,linux/arm64,linux/arm/v5,linux/arm/v7 | ||
- os: { distribution: debian, codename: trixie } | ||
target_platform: linux/amd64,linux/arm64,linux/arm/v5,linux/arm/v7 | ||
exclude: | ||
# qt6 is not available on ubuntu focal and debian buster | ||
- os: { distribution: ubuntu, codename: focal } | ||
qt_version: '6' | ||
- os: { distribution: debian, codename: buster } | ||
qt_version: '6' | ||
|
||
steps: | ||
- name: 👀 Checkout | ||
|
@@ -71,11 +81,13 @@ jobs: | |
uses: docker/metadata-action@v5 | ||
with: | ||
images: ghcr.io/${{ env.REPOSITORY }}/${{ matrix.os.distribution }} | ||
tags: ${{ matrix.os.codename }} | ||
tags: | | ||
type=raw,value=${{ matrix.os.codename }},enable=${{ matrix.qt_version == '5' }} | ||
type=raw,value=${{ matrix.os.codename }}-qt6,enable=${{ matrix.qt_version == '6' }} | ||
labels: | | ||
maintainer=Hyperion Project <[email protected]> | ||
org.opencontainers.image.vendor=Hyperion Project | ||
org.opencontainers.image.title=${{ matrix.os.description }} | ||
org.opencontainers.image.title=${{ matrix.os.description }} - QT ${{ matrix.qt_version }} | ||
org.opencontainers.image.description=Compilation environment to build Hyperion for ${{ matrix.os.distribution }} ${{ matrix.os.codename }} | ||
org.opencontainers.image.url=${{ github.server_url }} | ||
org.opencontainers.image.source=${{ github.server_url }}/hyperion.docker-ci | ||
|
@@ -95,30 +107,49 @@ jobs: | |
build-args: | | ||
DIST=${{ matrix.os.distribution }} | ||
SUITE=${{ matrix.os.codename }} | ||
QT_VERSION=${{ matrix.qt_version }} | ||
REPOSITORY="${{ github.server_url }}/${{ env.REPOSITORY }}" | ||
- name: 🐳 Set up, 👷 Build, 🔀 Combine and 🚀 Push Debian Buster armv6 image | ||
debian_buster_armv6: | ||
name: 🐧 Debian 10.x (Buster) (armv6) Qt 5 | ||
needs: [ ubuntu_debian ] | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: 👀 Checkout | ||
uses: actions/checkout@v4 | ||
|
||
- name: ✅ Determine current Repository | ||
if: ${{ !startsWith(github.repository, env.REPOSITORY) }} | ||
run: echo "REPOSITORY=$(echo '${{ github.actor }}' | tr '[:upper:]' '[:lower:]')" >> ${GITHUB_ENV} | ||
|
||
- name: 🛠️ Set up QEMU | ||
uses: docker/setup-qemu-action@v3 | ||
|
||
- name: 🐳 Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v3 | ||
|
||
- name: 👷 Build, 🔀 Combine and 🚀 Push Debian Buster armv6 image | ||
if: ${{ matrix.os.codename == 'buster' }} | ||
run: | | ||
docker buildx build --provenance=false --push --tag ghcr.io/${{ env.REPOSITORY }}/${{ matrix.os.distribution }}:${{ env.FILE_TAG }} --platform linux/arm/v5 --file ${{ env.FILE_TAG }} . | ||
docker buildx imagetools create -t ${{ steps.docker_metadata.outputs.tags }} --append ghcr.io/${{ env.REPOSITORY }}/${{ matrix.os.distribution }}:${{ env.FILE_TAG }} | ||
env: | ||
FILE_TAG: buster-armv6 | ||
echo ${{ secrets.DOCKER_CI }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin | ||
docker buildx build --provenance=false --push --tag ghcr.io/${{ env.REPOSITORY }}/debian:buster-armv6 --platform linux/arm/v5 --file buster-armv6 . | ||
docker buildx imagetools create -t ghcr.io/${{ env.REPOSITORY }}/debian:buster --append ghcr.io/${{ env.REPOSITORY }}/debian:buster-armv6 | ||
#################### | ||
###### Fedora ###### | ||
#################### | ||
|
||
fedora: | ||
name: ${{ matrix.description }} ${{ matrix.tag }} | ||
name: 🐧 ${{ matrix.description }} ${{ matrix.tag }} Qt ${{ matrix.qt_version }} | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
tag: [ 37, 38, 39, 40 ] | ||
qt_version: [ '5', '6' ] | ||
include: | ||
- dist: fedora | ||
- description: 🐧 Fedora | ||
- description: Fedora | ||
- target_platform: linux/amd64, linux/arm64 | ||
|
||
steps: | ||
|
@@ -148,12 +179,14 @@ jobs: | |
uses: docker/metadata-action@v4 | ||
with: | ||
images: ghcr.io/${{ env.REPOSITORY }}/${{ matrix.dist }} | ||
tags: ${{ matrix.tag }} | ||
tags: | | ||
type=raw,value=${{ matrix.tag }},enable=${{ matrix.qt_version == '5' }} | ||
type=raw,value=${{ matrix.tag }}-qt6,enable=${{ matrix.qt_version == '6' }} | ||
labels: | | ||
maintainer=Hyperion Project <[email protected]> | ||
org.opencontainers.image.vendor=Hyperion Project | ||
org.opencontainers.image.title=${{ matrix.description }} | ||
org.opencontainers.image.description=Compilation environment to build the RPM packages for the DNF Repository | ||
org.opencontainers.image.title=${{ matrix.description }} - QT ${{ matrix.qt_version }} | ||
org.opencontainers.image.description=Compilation environment to build Hyperion for ${{ matrix.description }} ${{ matrix.tag }} | ||
org.opencontainers.image.url=${{ github.server_url }} | ||
org.opencontainers.image.source=${{ github.server_url }}/hyperion.docker-ci | ||
org.opencontainers.image.documentation=https://docs.hyperion-project.org/ | ||
|
@@ -172,4 +205,5 @@ jobs: | |
build-args: | | ||
DIST=${{ matrix.dist }} | ||
SUITE=${{ matrix.tag }} | ||
REPOSITORY="${{ github.server_url }}/${{ env.REPOSITORY }}" | ||
QT_VERSION=${{ matrix.qt_version }} | ||
REPOSITORY="${{ github.server_url }}/${{ env.REPOSITORY }}" |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -19,6 +19,8 @@ LABEL maintainer="Hyperion Project <[email protected]>" \ | |
# install deps | ||
RUN install_packages \ | ||
git \ | ||
cmake=3.13.4-1 \ | ||
cmake-data=3.13.4-1 \ | ||
python3-dev \ | ||
qtbase5-dev \ | ||
libqt5serialport5-dev \ | ||
|
@@ -35,9 +37,7 @@ RUN install_packages \ | |
libasound2-dev \ | ||
libjpeg-dev \ | ||
libturbojpeg0-dev \ | ||
libftdi1-dev \ | ||
cmake=3.13.4-1 \ | ||
cmake-data=3.13.4-1 && \ | ||
libftdi1-dev && \ | ||
apt-get clean -q -y && \ | ||
apt-get autoremove -y && \ | ||
rm -rf /var/lib/apt/lists/* |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,44 @@ | ||
ARG DIST="fedora" | ||
ARG SUITE="36" | ||
ARG SUITE="37" | ||
ARG QT_VERSION="5" | ||
ARG REPOSITORY="https://github.com/hyperion-project" | ||
|
||
FROM ${DIST}:${SUITE} | ||
|
||
ARG DIST | ||
ARG SUITE | ||
ARG QT_VERSION | ||
ARG REPOSITORY | ||
ARG TARGETPLATFORM | ||
|
||
# install deps | ||
RUN dnf -y update && \ | ||
dnf -y groupinstall 'Development Tools' 'C Development Tools and Libraries' 'RPM Development Tools' && \ | ||
dnf -y install \ | ||
LABEL maintainer="Hyperion Project <[email protected]>" \ | ||
org.opencontainers.image.title="${DIST} ${SUITE} ${TARGETPLATFORM} - QT ${QT_VERSION}" \ | ||
org.opencontainers.image.description="Compilation environment to build Hyperion for ${DIST} ${SUITE}" \ | ||
org.opencontainers.image.url="${REPOSITORY}" \ | ||
org.opencontainers.image.source="${REPOSITORY}/hyperion.docker-ci" \ | ||
org.opencontainers.image.vendor="Hyperion Project" \ | ||
org.opencontainers.image.documentation="https://docs.hyperion-project.org" \ | ||
org.opencontainers.image.licenses="MIT" | ||
|
||
ENV DNF_INSTALL="dnf -y install" | ||
|
||
# update | ||
RUN dnf -y update | ||
|
||
# install qt5 or qt6 | ||
RUN if [ "$QT_VERSION" = "6" ]; then \ | ||
$DNF_INSTALL qt6-qtbase-devel qt6-qtserialport-devel libxkbcommon-devel; \ | ||
else \ | ||
$DNF_INSTALL qt5-qtbase-devel qt5-qtserialport-devel qt5-qtx11extras-devel; \ | ||
fi | ||
|
||
# install general deps | ||
RUN dnf -y groupinstall 'Development Tools' 'C Development Tools and Libraries' 'RPM Development Tools' && \ | ||
$DNF_INSTALL \ | ||
fedora-packager \ | ||
python3-devel \ | ||
qt5-qtbase-devel \ | ||
qt5-qtserialport-devel \ | ||
libXrandr-devel \ | ||
xcb-util-image-devel \ | ||
qt5-qtx11extras-devel \ | ||
turbojpeg-devel \ | ||
libjpeg-turbo-devel \ | ||
libusb1-devel \ | ||
|
@@ -40,4 +59,4 @@ RUN dnf -y update && \ | |
RUN rpmdev-setuptree | ||
|
||
# cleanup | ||
RUN dnf clean all && rm -rf /var/cache/dnf | ||
RUN dnf clean all && rm -rf /var/cache/dnf |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,18 @@ | ||
ARG DIST="debian" | ||
ARG SUITE="buster" | ||
ARG QT_VERSION="5" | ||
ARG REPOSITORY="https://github.com/hyperion-project" | ||
|
||
FROM ${DIST}:${SUITE} | ||
|
||
ARG DIST | ||
ARG SUITE | ||
ARG QT_VERSION | ||
ARG REPOSITORY | ||
ARG TARGETPLATFORM | ||
|
||
LABEL maintainer="Hyperion Project <[email protected]>" \ | ||
org.opencontainers.image.title="${DIST} ${SUITE} ${TARGETPLATFORM}" \ | ||
org.opencontainers.image.title="${DIST} ${SUITE} ${TARGETPLATFORM} - QT ${QT_VERSION}" \ | ||
org.opencontainers.image.description="Compilation environment to build Hyperion for ${DIST} ${SUITE}" \ | ||
org.opencontainers.image.url="${REPOSITORY}" \ | ||
org.opencontainers.image.source="${REPOSITORY}/hyperion.docker-ci" \ | ||
|
@@ -25,22 +27,36 @@ ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn | |
ENV APT_INSTALL="apt-get -y install --no-install-recommends" | ||
ENV APT_UPDATE="apt-get -y update" | ||
|
||
# install general deps (all platforms/arch/os) | ||
ARG DEBIAN_FRONTEND=noninteractive | ||
RUN $APT_UPDATE && $APT_INSTALL \ | ||
|
||
# update | ||
RUN $APT_UPDATE | ||
|
||
# install qt5 or qt6 (qt6 is not available on ubuntu focal and debian buster) | ||
# on debian bullseye add backports to install qt6 | ||
RUN if [ "$SUITE" != "buster" ] && [ "$SUITE" != "focal" ] && [ "$QT_VERSION" = "6" ]; then \ | ||
if [ "$SUITE" = "bullseye" ]; then \ | ||
echo "deb http://deb.debian.org/debian bullseye-backports main contrib non-free" | tee -a /etc/apt/sources.list; \ | ||
$APT_UPDATE; \ | ||
fi; \ | ||
$APT_INSTALL qt6-base-dev libqt6serialport6-dev libxkbcommon-dev libvulkan-dev libgl1-mesa-dev; \ | ||
else \ | ||
$APT_INSTALL qtbase5-dev libqt5serialport5-dev libqt5sql5-sqlite libqt5svg5-dev; \ | ||
fi | ||
|
||
# install general deps (all platforms/arch/os) | ||
RUN $APT_INSTALL \ | ||
devscripts \ | ||
fakeroot \ | ||
debhelper \ | ||
libdistro-info-perl \ | ||
git \ | ||
python3-dev \ | ||
qtbase5-dev \ | ||
libqt5serialport5-dev \ | ||
libqt5sql5-sqlite \ | ||
libqt5svg5-dev \ | ||
build-essential \ | ||
libusb-1.0-0-dev \ | ||
libcec-dev \ | ||
libp8-platform-dev \ | ||
libudev-dev \ | ||
libavahi-core-dev \ | ||
libavahi-compat-libdnssd-dev \ | ||
zlib1g-dev \ | ||
|
@@ -57,9 +73,9 @@ RUN if [ "$TARGETPLATFORM" = "linux/arm/v7" ]; then \ | |
if [ "$SUITE" = "buster" ]; then \ | ||
$APT_INSTALL cmake=3.13.4-1 cmake-data=3.13.4-1; \ | ||
elif [ "$SUITE" = "focal" ]; then \ | ||
echo "deb [arch=armhf] http://ports.ubuntu.com/ bionic main restricted" > /etc/apt/sources.list.d/groovy-sources.list; \ | ||
echo "deb [arch=armhf] http://ports.ubuntu.com/ bionic main restricted" > /etc/apt/sources.list.d/bionic-sources.list; \ | ||
$APT_UPDATE && $APT_INSTALL -t bionic cmake; \ | ||
rm /etc/apt/sources.list.d/groovy-sources.list; \ | ||
rm /etc/apt/sources.list.d/bionic-sources.list; \ | ||
else \ | ||
$APT_INSTALL cmake; \ | ||
fi; \ | ||
|
@@ -70,6 +86,9 @@ fi | |
# install X11/XCB on Ubuntu for all arch and on Debian for amd64 | ||
# install libraspberrypi-dev on Debian for arm64/armhf | ||
RUN if [ "$DIST" = "ubuntu" ] || [ "$TARGETPLATFORM" = "linux/amd64" ]; then \ | ||
if [ "$QT_VERSION" = "5" ]; then \ | ||
$APT_INSTALL libqt5x11extras5-dev; \ | ||
fi; \ | ||
$APT_INSTALL libqt5x11extras5-dev libxcb-util0-dev libxcb-randr0-dev libxcb-shm0-dev libxcb-render0-dev libxcb-image0-dev libxrandr-dev libxrender-dev; \ | ||
elif [ "$TARGETPLATFORM" = "linux/arm64" ] || [ "$TARGETPLATFORM" = "linux/arm/v7" ] && [ "$SUITE" != "trixie" ]; then \ | ||
$APT_INSTALL wget gpg dirmngr gpg-agent; \ | ||
|