Skip to content
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
1 change: 1 addition & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
# ba0fde3d-bee7-4307-b97b-17d0d20aff50
version: 2
updates:

Expand Down
32 changes: 23 additions & 9 deletions .github/workflows/build-iso.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,16 @@
---
# ba0fde3d-bee7-4307-b97b-17d0d20aff50
name: Build ISOs
on:
workflow_dispatch:
inputs:
VARIANT:
description: 'Desktop variant to build'
required: true
type: choice
options:
- 'gnome'
- 'kde'

concurrency:
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
Expand All @@ -17,6 +26,7 @@ jobs:
PLATFORMS: ${{ steps.set.outputs.PLATFORMS }}
IMAGE_PATH: ${{ steps.set.outputs.IMAGE_PATH }}
IMAGE_NAME: ${{ steps.set.outputs.IMAGE_NAME }}
IMAGE_REF: ${{ steps.set.outputs.IMAGE_REF }}
VARIANTS: ${{ steps.set.outputs.VARIANTS }}
MATRIX: ${{ steps.set.outputs.MATRIX }}
IS_SIGNED: ${{ steps.set.outputs.IS_SIGNED }}
Expand All @@ -25,9 +35,7 @@ jobs:
id: set
run: |
# Pick a latest tag based on the event type
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
echo "LATEST_TAG=pr-${{ github.event.number }}" >> $GITHUB_OUTPUT
elif [[ "${{ github.ref }}" != "refs/heads/${{ github.event.repository.default_branch }}" ]]; then
if [[ "${{ github.ref }}" != "refs/heads/${{ github.event.repository.default_branch }}" ]]; then
echo "LATEST_TAG=${{ github.ref_name }}" >> $GITHUB_OUTPUT
else
echo "LATEST_TAG=latest" >> $GITHUB_OUTPUT
Expand All @@ -36,17 +44,23 @@ jobs:
REGISTRY=quay.io
REGISTRY_USER="almalinuxorg+airibarr_bot"
IMAGE_PATH="almalinuxorg"
IMAGE_NAME=${{ github.event.repository.name }}
PLATFORMS="amd64"
VARIANTS="gnome,kde"

echo "REGISTRY=${REGISTRY}" >> $GITHUB_OUTPUT
echo "REGISTRY_USER=${REGISTRY_USER}" >> $GITHUB_OUTPUT
echo "IMAGE_PATH=${IMAGE_PATH}" >> $GITHUB_OUTPUT
echo "IMAGE_NAME=${REGISTRY}/${IMAGE_PATH}/${{ github.event.repository.name }}" >> $GITHUB_OUTPUT
echo "IMAGE_NAME=${IMAGE_NAME}" >> $GITHUB_OUTPUT
echo "IMAGE_REF=${REGISTRY}/${IMAGE_PATH}/${IMAGE_NAME}" >> $GITHUB_OUTPUT
echo "PLATFORMS=${PLATFORMS}" >> $GITHUB_OUTPUT
echo "VARIANTS=${VARIANTS}" >> $GITHUB_OUTPUT

echo "MATRIX={\"variant\": $(echo $VARIANTS | jq -cR 'split(",")')}" >> $GITHUB_OUTPUT
if [[ "${{ inputs.VARIANT }}" == "ALL" ]]; then
echo "MATRIX={\"variant\": $(echo $VARIANTS | jq -cR 'split(",")')}" >> $GITHUB_OUTPUT
else
echo "MATRIX={\"variant\": '[\"${{ inputs.VARIANT }}\"]'}" >> $GITHUB_OUTPUT
fi

# This is a workaround so that the expansion of secrets.SIGNING_SECRET doesn't break the if statement
SECRET=$(cat <<EOF
Expand All @@ -65,11 +79,11 @@ jobs:
strategy:
fail-fast: false
matrix: ${{fromJson(needs.set-env.outputs.MATRIX)}}
uses: AlmaLinux/desktop-bootc-ci/.github/workflows/build-iso.yml@v4
uses: AlmaLinux/atomic-ci/.github/workflows/build-iso.yml@v4
with:
image-name: "${{ github.event.repository.name }}-${{ matrix.variant }}"
image: "${{ needs.set-env.outputs.IMAGE_NAME }}-${{ matrix.variant }}:latest"
update_origin_ref: "${{ needs.set-env.outputs.IMAGE_NAME }}-${{ matrix.variant }}:latest"
image-name: "${{ needs.set-env.outputs.IMAGE_NAME }}-${{ matrix.variant }}"
image: "${{ needs.set-env.outputs.IMAGE_REF }}-${{ matrix.variant }}:${{ needs.set-env.outputs.LATEST_TAG }}"
update_origin_ref: "${{ needs.set-env.outputs.IMAGE_REF }}-${{ matrix.variant }}:${{ needs.set-env.outputs.LATEST_TAG }}"
update_is_signed: ${{ needs.set-env.outputs.IS_SIGNED == 'true' }}
config-file: ./iso.toml
platforms: ${{ needs.set-env.outputs.PLATFORMS }}
Expand Down
16 changes: 9 additions & 7 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
# ba0fde3d-bee7-4307-b97b-17d0d20aff50
name: Build image
on:
pull_request:
Expand All @@ -23,6 +24,7 @@ jobs:
PLATFORMS: ${{ steps.set.outputs.PLATFORMS }}
IMAGE_PATH: ${{ steps.set.outputs.IMAGE_PATH }}
IMAGE_NAME: ${{ steps.set.outputs.IMAGE_NAME }}
IMAGE_REF: ${{ steps.set.outputs.IMAGE_REF }}
VARIANTS: ${{ steps.set.outputs.VARIANTS }}
MATRIX: ${{ steps.set.outputs.MATRIX }}
IS_SIGNED: ${{ steps.set.outputs.IS_SIGNED }}
Expand All @@ -31,9 +33,7 @@ jobs:
id: set
run: |
# Pick a latest tag based on the event type
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
echo "LATEST_TAG=pr-${{ github.event.number }}" >> $GITHUB_OUTPUT
elif [[ "${{ github.ref }}" != "refs/heads/${{ github.event.repository.default_branch }}" ]]; then
if [[ "${{ github.ref }}" != "refs/heads/${{ github.event.repository.default_branch }}" ]]; then
echo "LATEST_TAG=${{ github.ref_name }}" >> $GITHUB_OUTPUT
else
echo "LATEST_TAG=latest" >> $GITHUB_OUTPUT
Expand All @@ -42,13 +42,15 @@ jobs:
REGISTRY=quay.io
REGISTRY_USER="almalinuxorg+airibarr_bot"
IMAGE_PATH="almalinuxorg"
IMAGE_NAME=${{ github.event.repository.name }}
PLATFORMS="amd64"
VARIANTS="gnome,kde"

echo "REGISTRY=${REGISTRY}" >> $GITHUB_OUTPUT
echo "REGISTRY_USER=${REGISTRY_USER}" >> $GITHUB_OUTPUT
echo "IMAGE_PATH=${IMAGE_PATH}" >> $GITHUB_OUTPUT
echo "IMAGE_NAME=${REGISTRY}/${IMAGE_PATH}/${{ github.event.repository.name }}" >> $GITHUB_OUTPUT
echo "IMAGE_NAME=${IMAGE_NAME}" >> $GITHUB_OUTPUT
echo "IMAGE_REF=${REGISTRY}/${IMAGE_PATH}/${IMAGE_NAME}" >> $GITHUB_OUTPUT
echo "PLATFORMS=${PLATFORMS}" >> $GITHUB_OUTPUT
echo "VARIANTS=${VARIANTS}" >> $GITHUB_OUTPUT

Expand All @@ -75,9 +77,9 @@ jobs:
with:
variant: ${{ matrix.variant }}
containerfile: Dockerfile
image_name: "${{ github.event.repository.name }}-${{ matrix.variant }}"
previous_image: "${{ needs.set-env.outputs.IMAGE_NAME }}-${{ matrix.variant }}:latest"
update_origin_ref: "${{ needs.set-env.outputs.IMAGE_NAME }}-${{ matrix.variant }}:${{ needs.set-env.outputs.LATEST_TAG }}"
image_name: "${{ needs.set-env.outputs.IMAGE_NAME }}-${{ matrix.variant }}"
previous_image: "${{ needs.set-env.outputs.IMAGE_REF }}-${{ matrix.variant }}:latest"
update_origin_ref: "${{ needs.set-env.outputs.IMAGE_REF }}-${{ matrix.variant }}:${{ needs.set-env.outputs.LATEST_TAG }}"
latest_tag: ${{ needs.set-env.outputs.LATEST_TAG }}
update_is_signed: ${{ needs.set-env.outputs.IS_SIGNED == 'true' }}
config_file: ./iso.toml
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/reusable-build.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
---
# ba0fde3d-bee7-4307-b97b-17d0d20aff50
name: Reusable Build
on:
workflow_call:
Expand Down Expand Up @@ -50,7 +52,7 @@ on:
jobs:
build-image:
name: Build image
uses: AlmaLinux/desktop-bootc-ci/.github/workflows/build-image.yml@v4
uses: AlmaLinux/atomic-ci/.github/workflows/build-image.yml@v4
with:
containerfile: ${{ inputs.containerfile }}
image-name: ${{ inputs.image_name }}
Expand Down Expand Up @@ -94,7 +96,7 @@ jobs:
name: Promote image
needs: [build-image, test-image]
if: ${{ github.ref == format('refs/heads/{0}', github.event.repository.default_branch) }}
uses: AlmaLinux/desktop-bootc-ci/.github/workflows/retag-image.yml@v4
uses: AlmaLinux/atomic-ci/.github/workflows/retag-image.yml@v4
with:
image: ${{ needs.build-image.outputs.image-ref }}@${{ needs.build-image.outputs.digest }}
tag: |
Expand Down
1 change: 1 addition & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ba0fde3d-bee7-4307-b97b-17d0d20aff50
# Allow build scripts to be referenced without being copied into the final image
FROM scratch AS ctx

Expand Down
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ba0fde3d-bee7-4307-b97b-17d0d20aff50
SUDO = sudo
PODMAN = $(SUDO) podman

Expand Down
47 changes: 46 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,46 @@
# Image template repository
# Purpose

This repository builds the Atomic AlmaLinux base images. It takes the official
[AlmaLinux bootc images](https://github.com/AlmaLinux/bootc-images), adds a basic
desktop environment and smooths out some kinks.

These images are the perfect base from which you can build your own Atomic AlmaLinux respin!
To make this easier, we've created [a template repository](https://github.com/new?template_name=atomic-respin-template&template_owner=AlmaLinux)
to get you started. Create your own Atomic AlmaLinux respin in minutes!

# Contributing

We welcome contributions to all parts of the AlmaLinux project. If you'd like to get involved, please feel free to reach out through [the chat](https://chat.almalinux.org/almalinux/channels/sigatomic)!

## Contributing - Code and Design

Before submitting code changes, please check if there are any open issues or pull requests that cover your proposal. If not, open an issue with a brief description and so you can discuss it with us first. This helps avoid duplicated work and ensures proposed changes align with project goals. This can be your anticipated workflow:

- Create an issue describing your changes.
- Await confirmation from contributors.
- Fork the project.
- Create a new branch for your feature or bug fix.
- Add your code, documentation, etc.
- Submit a pull request (PR). All PRs should target the `main` branch.

After review and approval, the changes will be merged and deployed.

## Reporting a Bug

If you find a bug, please report it [here](https://github.com/AlmaLinux/atomic-desktop/issues)!

## Requesting a Feature

We're open to feature requests! Please follow this workflow:

1. [Search existing issues](https://github.com/AlmaLinux/atomic-desktop/issues) to see if the feature has already been requested. If so, give it a thumbs up, +1, or a comment on your use-case.
2. If no similar request exists, open a new issue. Please clearly explain why the feature is needed and provide a detailed use case.

## Change Approval Process

- Minor or cosmetic changes (typos, small style tweaks) can be reviewed and approved by any contributor with merge rights.
- Larger changes should be agreed on as a SIG.

# Getting help

This repo is managed by the Atomic SIG. You can see how best to contact us in the [AlmaLinux wiki](https://wiki.almalinux.org/sigs/Atomic.html).
10 changes: 0 additions & 10 deletions files/scripts/10-base.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,5 @@

set -xeuo pipefail

# Example of how you start customizing the image

dnf install -y 'dnf-command(config-manager)'
dnf config-manager --set-enabled crb

if [[ "${VARIANT}" == "gnome" ]]; then
echo "Installing gnome"
elif [[ "${VARIANT}" == "kde" ]]; then
echo "Installing kde"
else
echo "Neutral variant"
fi
6 changes: 4 additions & 2 deletions files/scripts/20-desktop.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ set -xeuo pipefail
if [[ "${VARIANT}" == "gnome" ]]; then
dnf install -y \
@"Workstation"

systemctl enable gdm

elif [[ "${VARIANT}" == "kde" ]]; then
Expand All @@ -20,5 +20,7 @@ else

fi


systemctl set-default graphical.target

dnf -y remove \
setroubleshoot
1 change: 1 addition & 0 deletions iso.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ba0fde3d-bee7-4307-b97b-17d0d20aff50
[customizations.installer.kickstart]
contents = """
%post --erroronfail --log=/root/anaconda-post.log
Expand Down