Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

images: Enable arm64 container builds #154

Merged
merged 2 commits into from
Apr 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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' }}
tomponline marked this conversation as resolved.
Show resolved Hide resolved
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}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This exclude mechanism forcing a double negation is annoying but I don't see how to simplify it.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes I agree, but it is for the same reason as described in #154 (comment).

- {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
Loading