Package Builders #1676
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
--- | |
# Builds our package-builder Docker iamges used to build Native Binary Packages (RPM, DEB) | |
name: Package Builders | |
on: | |
schedule: | |
- cron: '0 0 * * *' | |
push: | |
branches: | |
- 'master' | |
pull_request: | |
concurrency: | |
group: package-builders-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build-check: | |
name: Build Check | |
if: github.event_name == 'pull_request' | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
os: | |
- almalinux8 | |
- almalinux9 | |
- amazonlinux2 | |
- amazonlinux2023 | |
- centos-stream8 | |
- centos-stream9 | |
- centos7 | |
- debian10 | |
- debian11 | |
- debian12 | |
- fedora37 | |
- fedora38 | |
- opensusetumbleweed | |
- opensuse15.4 | |
- opensuse15.5 | |
- oraclelinux8 | |
- oraclelinux9 | |
- ubuntu20.04 | |
- ubuntu22.04 | |
- ubuntu23.04 | |
max-parallel: 8 | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Docker Build | |
uses: docker/build-push-action@v4 | |
with: | |
load: false | |
push: false | |
file: ./package-builders/Dockerfile.${{ matrix.os }} | |
tags: netdata/package-builders:${{ matrix.os }} | |
pr-checks: | |
name: PR Checks | |
if: github.event_name == 'pull_request' | |
needs: build-check | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
os: | |
- almalinux8 | |
- almalinux9 | |
- amazonlinux2 | |
- amazonlinux2023 | |
- centos-stream8 | |
- centos-stream9 | |
- centos7 | |
- debian10 | |
- debian11 | |
- debian12 | |
- fedora37 | |
- fedora38 | |
- opensusetumbleweed | |
- opensuse15.4 | |
- opensuse15.5 | |
- oraclelinux8 | |
- oraclelinux9 | |
- ubuntu20.04 | |
- ubuntu22.04 | |
- ubuntu23.04 | |
platform: | |
- linux/i386 | |
- linux/arm/v7 | |
- linux/arm64/v8 | |
exclude: # don’t try to run these specific combinations | |
- {os: almalinux8, platform: linux/i386} | |
- {os: almalinux8, platform: linux/arm/v7} | |
- {os: almalinux9, platform: linux/i386} | |
- {os: almalinux9, platform: linux/arm/v7} | |
- {os: amazonlinux2, platform: linux/i386} | |
- {os: amazonlinux2, platform: linux/arm/v7} | |
- {os: amazonlinux2023, platform: linux/i386} | |
- {os: amazonlinux2023, platform: linux/arm/v7} | |
- {os: centos-stream8, platform: linux/i386} | |
- {os: centos-stream8, platform: linux/arm/v7} | |
- {os: centos-stream9, platform: linux/i386} | |
- {os: centos-stream9, platform: linux/arm/v7} | |
- {os: centos7, platform: linux/i386} | |
- {os: centos7, platform: linux/arm/v7} | |
- {os: centos7, platform: linux/arm64/v8} | |
- {os: fedora37, platform: linux/i386} | |
- {os: fedora37, platform: linux/arm/v7} | |
- {os: fedora38, platform: linux/i386} | |
- {os: fedora38, platform: linux/arm/v7} | |
- {os: opensuse15.4, platform: linux/i386} | |
- {os: opensuse15.4, platform: linux/arm/v7} | |
- {os: opensuse15.5, platform: linux/i386} | |
- {os: opensuse15.5, platform: linux/arm/v7} | |
- {os: opensusetumbleweed, platform: linux/i386} | |
- {os: opensusetumbleweed, platform: linux/arm/v7} | |
- {os: oraclelinux8, platform: linux/i386} | |
- {os: oraclelinux8, platform: linux/arm/v7} | |
- {os: oraclelinux9, platform: linux/i386} | |
- {os: oraclelinux9, platform: linux/arm/v7} | |
- {os: ubuntu20.04, platform: linux/i386} | |
- {os: ubuntu22.04, platform: linux/i386} | |
- {os: ubuntu23.04, platform: linux/i386} | |
max-parallel: 8 | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup QEMU | |
if: matrix.platform != 'linux/i386' | |
uses: docker/setup-qemu-action@v2 | |
- name: Setup Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Build | |
uses: docker/build-push-action@v4 | |
with: | |
platforms: ${{ matrix.platform }} | |
load: false | |
push: false | |
file: ./package-builders/Dockerfile.${{ matrix.os }} | |
tags: netdata/package-builders:${{ matrix.os }} | |
publish: | |
name: Publish Images | |
if: github.event_name == 'push' || (github.event_name == 'schedule' && github.repository == 'netdata/helper-images') | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
os: | |
- almalinux8 | |
- almalinux9 | |
- amazonlinux2 | |
- amazonlinux2023 | |
- centos-stream8 | |
- centos-stream9 | |
- centos7 | |
- debian10 | |
- debian11 | |
- debian12 | |
- fedora37 | |
- fedora38 | |
- opensusetumbleweed | |
- opensuse15.4 | |
- opensuse15.5 | |
- oraclelinux8 | |
- oraclelinux9 | |
- ubuntu20.04 | |
- ubuntu22.04 | |
- ubuntu23.04 | |
include: | |
- os: almalinux8 | |
arches: linux/amd64,linux/arm64/v8 # possibly linux/ppc64le | |
- os: almalinux9 | |
arches: linux/amd64,linux/arm64/v8 # possibly linux/ppc64le,linux/s390x | |
- os: amazonlinux2 | |
arches: linux/amd64,linux/arm64/v8 # No other platforms | |
- os: amazonlinux2023 | |
arches: linux/amd64,linux/arm64/v8 # No other platforms | |
- os: centos-stream8 | |
arches: linux/amd64,linux/arm64/v8 # possibly linux/ppc64le | |
- os: centos-stream9 | |
arches: linux/amd64,linux/arm64/v8 # possibly linux/ppc64le,linux/s390x | |
- os: centos7 | |
arches: linux/amd64 # Unable to provide alternate arches due to our dependence on OKay. | |
- os: debian10 | |
arches: linux/amd64,linux/i386,linux/arm/v7,linux/arm64/v8 # possibly linux/ppc64le,linuxs390x,linux/mips64le,linux/arm/v5 | |
- os: debian11 | |
arches: linux/amd64,linux/i386,linux/arm/v7,linux/arm64/v8 # possibly linux/ppc64le,linuxs390x,linux/mips64le,linux/arm/v5 | |
- os: debian12 | |
arches: linux/amd64,linux/i386,linux/arm/v7,linux/arm64/v8 # possibly linux/ppc64le,linuxs390x,linux/mips64le,linux/arm/v5 | |
- os: fedora37 | |
arches: linux/amd64,linux/arm64/v8 # possibly linux/ppc64le,linux/s390x | |
- os: fedora38 | |
arches: linux/amd64,linux/arm64/v8 # possibly linux/ppc64le,linux/s390x | |
- os: opensuse15.4 | |
arches: linux/amd64,linux/arm64/v8 # possibly linux/ppc64le | |
- os: opensuse15.5 | |
arches: linux/amd64,linux/arm64/v8 # possibly linux/ppc64le | |
- os: opensusetumbleweed | |
arches: linux/amd64,linux/arm64/v8 # possibly linux/arm/v7, linux/ppc64le | |
- os: oraclelinux8 | |
arches: linux/amd64,linux/arm64/v8 # No other platforms | |
- os: oraclelinux9 | |
arches: linux/amd64,linux/arm64/v8 # No other platforms | |
- os: ubuntu20.04 | |
arches: linux/amd64,linux/arm/v7,linux/arm64/v8 # possibly linux/ppc64le,linux/s390x | |
- os: ubuntu22.04 | |
arches: linux/amd64,linux/arm/v7,linux/arm64/v8 # possibly linux/ppc64le,linux/s390x | |
- os: ubuntu23.04 | |
arches: linux/amd64,linux/arm/v7,linux/arm64/v8 # possibly linux/ppc64le,linux/s390x | |
max-parallel: 8 | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Setup Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Docker Hub Login | |
uses: docker/login-action@v2 | |
with: | |
username: netdatabot | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: GitHub Container Registry Login | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Quay.io Login | |
uses: docker/login-action@v2 | |
with: | |
registry: quay.io | |
username: ${{ secrets.NETDATABOT_QUAY_USERNAME }} | |
password: ${{ secrets.NETDATABOT_QUAY_TOKEN }} | |
- name: Docker Build | |
uses: docker/build-push-action@v4 | |
with: | |
platforms: ${{ matrix.arches }} | |
push: true | |
file: ./package-builders/Dockerfile.${{ matrix.os }} | |
tags: netdata/package-builders:${{ matrix.os }},ghcr.io/netdata/package-builders:${{ matrix.os }},quay.io/netdata/package-builders:${{ matrix.os }} |