Skip to content

Commit

Permalink
Merge pull request #154 from MusicDin/feat/arm-images
Browse files Browse the repository at this point in the history
images: Enable arm64 container builds
  • Loading branch information
tomponline authored Apr 19, 2024
2 parents 3ea900b + b8a0d72 commit 6034829
Show file tree
Hide file tree
Showing 22 changed files with 255 additions and 86 deletions.
17 changes: 13 additions & 4 deletions .github/workflows/image-almalinux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,22 @@ name: Build AlmaLinux Images

on:
schedule:
# Run at 00:00 UTC daily.
- cron: '0 0 * * *'
- cron: '0 0 * * *' # Build amd64 (Daily at 00:00 UTC).
- cron: '0 0 * * 1' # Build arm64 (Weekly on Monday at 00:00 UTC).
workflow_dispatch:
inputs:
publish:
type: boolean
default: false
description: Publish built image
build-arm64:
type: boolean
default: false
description: Build arm64 images

jobs:
almalinux:
runs-on: ubuntu-latest
runs-on: ${{ matrix.architecture == 'arm64' && 'Ubuntu_ARM64_4C_16G_01' || 'ubuntu-latest' }}
strategy:
fail-fast: false
matrix:
Expand All @@ -25,7 +29,12 @@ jobs:
- cloud
architecture:
- amd64
# - arm64
- arm64
build_arm64:
- ${{ inputs.build-arm64 == true || github.event.schedule == '0 0 * * 1' }}
exclude:
- {architecture: amd64, build_arm64: true}
- {architecture: arm64, build_arm64: false}
env:
type: "container"
distro: "${{ github.job }}"
Expand Down
17 changes: 13 additions & 4 deletions .github/workflows/image-alt.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,22 @@ name: Build ALT Linux Images

on:
schedule:
# Run at 00:00 UTC daily.
- cron: '0 0 * * *'
- cron: '0 0 * * *' # Build amd64 (Daily at 00:00 UTC).
- cron: '0 0 * * 1' # Build arm64 (Weekly on Monday at 00:00 UTC).
workflow_dispatch:
inputs:
publish:
type: boolean
default: false
description: Publish built image
build-arm64:
type: boolean
default: false
description: Build arm64 images

jobs:
alt:
runs-on: ubuntu-latest
runs-on: ${{ matrix.architecture == 'arm64' && 'Ubuntu_ARM64_4C_16G_01' || 'ubuntu-latest' }}
strategy:
fail-fast: false
matrix:
Expand All @@ -26,7 +30,12 @@ jobs:
- cloud
architecture:
- amd64
# - arm64
- arm64
build_arm64:
- ${{ inputs.build-arm64 == true || github.event.schedule == '0 0 * * 1' }}
exclude:
- {architecture: amd64, build_arm64: true}
- {architecture: arm64, build_arm64: false}
env:
type: "container"
distro: "${{ github.job }}"
Expand Down
18 changes: 14 additions & 4 deletions .github/workflows/image-amazonlinux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,22 @@ name: Build AmazonLinux Images

on:
schedule:
# Run at 00:00 UTC daily.
- cron: '0 0 * * *'
- cron: '0 0 * * *' # Build amd64 (Daily at 00:00 UTC).
- cron: '0 0 * * 1' # Build arm64 (Weekly on Monday at 00:00 UTC).
workflow_dispatch:
inputs:
publish:
type: boolean
default: false
description: Publish built image
build-arm64:
type: boolean
default: false
description: Build arm64 images

jobs:
amazonlinux:
runs-on: ubuntu-20.04
runs-on: ${{ matrix.architecture == 'arm64' && 'Ubuntu_ARM64_4C_16G_01' || 'ubuntu-20.04' }}
strategy:
fail-fast: false
matrix:
Expand All @@ -24,7 +28,13 @@ jobs:
- default
architecture:
- amd64
# - arm64
- arm64
build_arm64:
- ${{ inputs.build-arm64 == true || github.event.schedule == '0 0 * * 1' }}
exclude:
- {architecture: amd64, build_arm64: true}
- {architecture: arm64, build_arm64: false}
- {architecture: arm64, release: 2}
env:
type: "container"
distro: "${{ github.job }}"
Expand Down
16 changes: 12 additions & 4 deletions .github/workflows/image-archlinux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,22 @@ name: Build ArchLinux Images

on:
schedule:
# Run at 00:00 UTC daily.
- cron: '0 0 * * *'
- cron: '0 0 * * *' # Build amd64 (Daily at 00:00 UTC).
- cron: '0 0 * * 1' # Build arm64 (Weekly on Monday at 00:00 UTC).
workflow_dispatch:
inputs:
publish:
type: boolean
default: false
description: Publish built image
build-arm64:
type: boolean
default: false
description: Build arm64 images

jobs:
archlinux:
runs-on: ubuntu-latest
runs-on: ${{ matrix.architecture == 'arm64' && 'Ubuntu_ARM64_4C_16G_01' || 'ubuntu-latest' }}
strategy:
fail-fast: false
matrix:
Expand All @@ -25,8 +29,12 @@ jobs:
- desktop-gnome
architecture:
- amd64
# - arm64
- arm64
build_arm64:
- ${{ inputs.build-arm64 == true || github.event.schedule == '0 0 * * 1' }}
exclude:
- {architecture: amd64, build_arm64: true}
- {architecture: arm64, build_arm64: false}
- {architecture: arm64, variant: cloud}
- {architecture: arm64, variant: desktop-gnome}
env:
Expand Down
17 changes: 13 additions & 4 deletions .github/workflows/image-busybox.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,22 @@ name: Build BusyBox Images

on:
schedule:
# Run at 00:00 UTC daily.
- cron: '0 0 * * *'
- cron: '0 0 * * *' # Build amd64 (Daily at 00:00 UTC).
- cron: '0 0 * * 1' # Build arm64 (Weekly on Monday at 00:00 UTC).
workflow_dispatch:
inputs:
publish:
type: boolean
default: false
description: Publish built image
build-arm64:
type: boolean
default: false
description: Build arm64 images

jobs:
busybox:
runs-on: ubuntu-latest
runs-on: ${{ matrix.architecture == 'arm64' && 'Ubuntu_ARM64_4C_16G_01' || 'ubuntu-latest' }}
strategy:
fail-fast: false
matrix:
Expand All @@ -23,7 +27,12 @@ jobs:
- default
architecture:
- amd64
# - arm64
- arm64
build_arm64:
- ${{ inputs.build-arm64 == true || github.event.schedule == '0 0 * * 1' }}
exclude:
- {architecture: amd64, build_arm64: true}
- {architecture: arm64, build_arm64: false}
env:
type: "container"
distro: "${{ github.job }}"
Expand Down
18 changes: 14 additions & 4 deletions .github/workflows/image-centos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,22 @@ name: Build CentOS Images

on:
schedule:
# Run at 00:00 UTC daily.
- cron: '0 0 * * *'
- cron: '0 0 * * *' # Build amd64 (Daily at 00:00 UTC).
- cron: '0 0 * * 1' # Build arm64 (Weekly on Monday at 00:00 UTC).
workflow_dispatch:
inputs:
publish:
type: boolean
default: false
description: Publish built image
build-arm64:
type: boolean
default: false
description: Build arm64 images

jobs:
centos:
runs-on: ubuntu-20.04
runs-on: ${{ matrix.architecture == 'arm64' && 'Ubuntu_ARM64_4C_16G_01' || 'ubuntu-20.04' }}
strategy:
fail-fast: false
matrix:
Expand All @@ -26,7 +30,13 @@ jobs:
- cloud
architecture:
- amd64
# - arm64
- arm64
build_arm64:
- ${{ inputs.build-arm64 == true || github.event.schedule == '0 0 * * 1' }}
exclude:
- {architecture: amd64, build_arm64: true}
- {architecture: arm64, build_arm64: false}
- {architecture: arm64, release: 7}
env:
type: "container"
distro: "${{ github.job }}"
Expand Down
19 changes: 14 additions & 5 deletions .github/workflows/image-debian.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,22 @@ name: Build Debian Images

on:
schedule:
# Run at 00:00 UTC daily.
- cron: '0 0 * * *'
- cron: '0 0 * * *' # Build amd64 (Daily at 00:00 UTC).
- cron: '0 0 * * 1' # Build arm64 (Weekly on Monday at 00:00 UTC).
workflow_dispatch:
inputs:
publish:
type: boolean
default: false
description: Publish built image
build-arm64:
type: boolean
default: false
description: Build arm64 images

jobs:
debian:
runs-on: ubuntu-latest
runs-on: ${{ matrix.architecture == 'arm64' && 'Ubuntu_ARM64_4C_16G_01' || 'ubuntu-latest' }}
strategy:
fail-fast: false
matrix:
Expand All @@ -28,7 +32,12 @@ jobs:
- cloud
architecture:
- amd64
# - arm64
- arm64
build_arm64:
- ${{ inputs.build-arm64 == true || github.event.schedule == '0 0 * * 1' }}
exclude:
- {architecture: amd64, build_arm64: true}
- {architecture: arm64, build_arm64: false}
env:
type: "container"
distro: "${{ github.job }}"
Expand All @@ -43,7 +52,7 @@ jobs:
- name: Determine image types
run: |
ARCH="${{ matrix.architecture }}"
if [ "${ARCH}" = "amd64" ] || [ "${ARCH}" = "arm64" ]; then
if [ "${ARCH}" = "amd64" ]; then
echo "type=container,vm" >> $GITHUB_ENV
fi
Expand Down
17 changes: 13 additions & 4 deletions .github/workflows/image-devuan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,22 @@ name: Build Devuan Images

on:
schedule:
# Run at 00:00 UTC daily.
- cron: '0 0 * * *'
- cron: '0 0 * * *' # Build amd64 (Daily at 00:00 UTC).
- cron: '0 0 * * 1' # Build arm64 (Weekly on Monday at 00:00 UTC).
workflow_dispatch:
inputs:
publish:
type: boolean
default: false
description: Publish built image
build-arm64:
type: boolean
default: false
description: Build arm64 images

jobs:
devuan:
runs-on: ubuntu-latest
runs-on: ${{ matrix.architecture == 'arm64' && 'Ubuntu_ARM64_4C_16G_01' || 'ubuntu-latest' }}
strategy:
fail-fast: false
matrix:
Expand All @@ -26,7 +30,12 @@ jobs:
- cloud
architecture:
- amd64
# - arm64
- arm64
build_arm64:
- ${{ inputs.build-arm64 == true || github.event.schedule == '0 0 * * 1' }}
exclude:
- {architecture: amd64, build_arm64: true}
- {architecture: arm64, build_arm64: false}
env:
type: "container"
distro: "${{ github.job }}"
Expand Down
19 changes: 14 additions & 5 deletions .github/workflows/image-fedora.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,22 @@ name: Build Fedora Images

on:
schedule:
# Run at 00:00 UTC daily.
- cron: '0 0 * * *'
- cron: '0 0 * * *' # Build amd64 (Daily at 00:00 UTC).
- cron: '0 0 * * 1' # Build arm64 (Weekly on Monday at 00:00 UTC).
workflow_dispatch:
inputs:
publish:
type: boolean
default: false
description: Publish built image
build-arm64:
type: boolean
default: false
description: Build arm64 images

jobs:
fedora:
runs-on: ubuntu-latest
runs-on: ${{ matrix.architecture == 'arm64' && 'Ubuntu_ARM64_4C_16G_01' || 'ubuntu-latest' }}
strategy:
fail-fast: false
matrix:
Expand All @@ -25,7 +29,12 @@ jobs:
- cloud
architecture:
- amd64
# - arm64
- arm64
build_arm64:
- ${{ inputs.build-arm64 == true || github.event.schedule == '0 0 * * 1' }}
exclude:
- {architecture: amd64, build_arm64: true}
- {architecture: arm64, build_arm64: false}
env:
type: "container"
distro: "${{ github.job }}"
Expand All @@ -40,7 +49,7 @@ jobs:
- name: Determine image types
run: |
ARCH="${{ matrix.architecture }}"
if [ "${ARCH}" = "amd64" ] || [ "${ARCH}" = "arm64" ]; then
if [ "${ARCH}" = "amd64" ]; then
echo "type=container,vm" >> $GITHUB_ENV
fi
Expand Down
Loading

0 comments on commit 6034829

Please sign in to comment.