Merge pull request #16 from ublue-os/multibuild

feat: multibuild using recipe matrix
This commit is contained in:
Eino Rauhala
2023-04-03 16:49:52 +03:00
committed by GitHub
2 changed files with 41 additions and 20 deletions

View File

@@ -30,11 +30,10 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
major_version: [37] recipe:
include: - recipe.yml
- major_version: 37 - recipe-38.yml
is_latest_version: true
is_stable_version: true
steps: steps:
# Checkout push-to-registry action GitHub repository # Checkout push-to-registry action GitHub repository
- name: Checkout Push to Registry action - name: Checkout Push to Registry action
@@ -45,10 +44,10 @@ jobs:
- name: Gather image data from recipe - name: Gather image data from recipe
run: | run: |
echo "IMAGE_NAME=$(yq '.name' ./recipe.yml)" >> $GITHUB_ENV echo "IMAGE_NAME=$(yq '.name' ./${{ matrix.recipe }})" >> $GITHUB_ENV
echo "IMAGE_DESCRIPTION=$(yq '.description' ./recipe.yml)" >> $GITHUB_ENV echo "IMAGE_DESCRIPTION=$(yq '.description' ./${{ matrix.recipe }})" >> $GITHUB_ENV
echo "FEDORA_MAJOR_VERSION=$(yq '.fedora-version' ./recipe.yml)" >> $GITHUB_ENV echo "FEDORA_MAJOR_VERSION=$(yq '.fedora-version' ./${{ matrix.recipe }})" >> $GITHUB_ENV
echo "BASE_CONTAINER_URL=$(yq '.base-container' ./recipe.yml)" >> $GITHUB_ENV echo "BASE_CONTAINER_URL=$(yq '.base-container' ./${{ matrix.recipe }})" >> $GITHUB_ENV
- name: Generate tags - name: Generate tags
id: generate-tags id: generate-tags
@@ -56,26 +55,18 @@ jobs:
run: | run: |
# Generate a timestamp for creating an image version history # Generate a timestamp for creating an image version history
TIMESTAMP="$(date +%Y%m%d)" TIMESTAMP="$(date +%Y%m%d)"
MAJOR_VERSION="${{ matrix.major_version }}" MAJOR_VERSION="${{ env.FEDORA_MAJOR_VERSION }}"
COMMIT_TAGS=() COMMIT_TAGS=()
BUILD_TAGS=() BUILD_TAGS=()
# Have tags for tracking builds during pull request # Have tags for tracking builds during pull request
SHA_SHORT="$(git rev-parse --short HEAD)" SHA_SHORT="$(git rev-parse --short HEAD)"
COMMIT_TAGS+=("pr-${{ github.event.number }}-${MAJOR_VERSION}") COMMIT_TAGS+=("pr-${{ github.event.number }}-${MAJOR_VERSION}")
COMMIT_TAGS+=("${SHA_SHORT}-${MAJOR_VERSION}") COMMIT_TAGS+=("${SHA_SHORT}-${MAJOR_VERSION}")
if [[ "${{ matrix.is_latest_version }}" == "true" ]] && \
[[ "${{ matrix.is_stable_version }}" == "true" ]]; then
COMMIT_TAGS+=("pr-${{ github.event.number }}")
COMMIT_TAGS+=("${SHA_SHORT}")
fi
BUILD_TAGS=("${MAJOR_VERSION}" "${MAJOR_VERSION}-${TIMESTAMP}") BUILD_TAGS=("${MAJOR_VERSION}" "${MAJOR_VERSION}-${TIMESTAMP}")
if [[ "${{ matrix.is_latest_version }}" == "true" ]] && \ BUILD_TAGS+=("${TIMESTAMP}")
[[ "${{ matrix.is_stable_version }}" == "true" ]]; then BUILD_TAGS+=("latest")
BUILD_TAGS+=("${TIMESTAMP}")
BUILD_TAGS+=("latest")
fi
if [[ "${{ github.event_name }}" == "pull_request" ]]; then if [[ "${{ github.event_name }}" == "pull_request" ]]; then
echo "Generated the following commit tags: " echo "Generated the following commit tags: "

30
recipe-38.yml Normal file
View File

@@ -0,0 +1,30 @@
# the image will be at ghcr.io/yourusername/name
name: startingpoint
# what native container image to build on top of
# images not built by ublue might function unexpectly
base-container: ghcr.io/ublue-os/silverblue-main
# what fedora version to use, you can just change this to update
fedora-version: 38
# this description will be visible in the containers metadata
description: A starting point for further customization of uBlue images. Make your own! https://ublue.it/making-your-own/
# these rpms will be installed from the fedora repository
# using rpm-ostree and will be preinstalled in the final image
rpms:
- python3-pip # needed for yafti (the first boot installer)
# these flatpaks (from flathub) will be available for install on boot
# this is just an example selection, and even if you leave it empty,
# you'll have the basic options available in yafti
flatpaks:
- org.mozilla.firefox
- org.mozilla.Thunderbird
- com.mattjakeman.ExtensionManager
- org.libreoffice.LibreOffice
- org.gnome.DejaDup
- org.gustavoperedo.FontDownloader
- com.github.tchx84.Flatseal
- io.github.celluloid_player.Celluloid