Skip to content

Commit

Permalink
feat: ISO build action (blue-build#133)
Browse files Browse the repository at this point in the history
* feat: base iso release workflow
* does not produce a functional ISO yet
needs boot_menu

* chore(dev): start iso workflow on iso push

* fix: rename release-iso to release-please

* refactor: use github-cli to create release

* fix: remove job dependencies

* chore: basic boot menu

* fix: add permission to create release

* fix: delegate tag for auto-iso releases,..
delete old version when rerunning

* fix: multiline string for multine cmds

* fix: specify gh repo in old release delete

* fix: only create release if doesn't exist

* fix: boot menu double user field

* fix: clobber iso

* chore: neutral defaults for boot menu

* feat: run iso when iso-related changes pushed

* docs: README section for ISO
  • Loading branch information
xynydev authored Aug 4, 2023
1 parent 48c8250 commit a2b8056
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 0 deletions.
46 changes: 46 additions & 0 deletions .github/workflows/release-iso.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
on:
push:
paths:
- 'boot_menu.yml'
- '.github/workflows/release-iso.yml'
workflow_dispatch:

name: release-iso
jobs:
release-iso:
name: Generate and Release ISOs
runs-on: ubuntu-latest
permissions:
contents: write
container:
image: fedora:38
options: --privileged
steps:
- uses: actions/checkout@v3
- name: Generate ISO
uses: ublue-os/isogenerator@main
id: isogenerator
with:
image-name: ${{ github.event.repository.name }}
installer-repo: releases
installer-major-version: 38
boot-menu-path: boot_menu.yml
- name: install github CLI
run: |
sudo dnf install 'dnf-command(config-manager)' -y
sudo dnf config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo
sudo dnf install gh -y
- name: Upload ISO
env:
GITHUB_TOKEN: ${{ github.token }}
run: |
if gh release list -R ${{ github.repository_owner }}/${{ github.event.repository.name }} | grep "auto-iso"; then
gh release upload auto-iso ${{ steps.isogenerator.outputs.iso-path }} -R ${{ github.repository_owner }}/${{ github.event.repository.name }} --clobber
else
gh release create auto-iso ${{ steps.isogenerator.outputs.iso-path }} -t ISO -n "This is an automatically generated ISO release." -R ${{ github.repository_owner }}/${{ github.event.repository.name }}
fi
- name: Upload SHA256SUM
env:
GITHUB_TOKEN: ${{ github.token }}
run:
gh release upload auto-iso ${{ steps.isogenerator.outputs.sha256sum-path }} -R ${{ github.repository_owner }}/${{ github.event.repository.name }} --clobber
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,16 @@ This repository by default also supports signing

The `latest` tag will automatically point to the latest build. That build will still always use the Fedora version specified in `recipe.yml`, so you won't get accidentally updated to the next major version.

## ISO

This template includes a simple Github Action to build and release an ISO of your image.

To run the action, simply edit the `boot_menu.yml` by changing all the references to `ublue-os/startingpoint` to your repository. This should trigger the action automatically.

The Action uses [isogenerator](https://github.com/ublue-os/isogenerator) and works in a similar manner to the official Universal Blue ISO. If you have any issues, you should first check [the documentation page on installation](https://universal-blue.org/installation/). The ISO is a netinstaller and should always pull the latest version of your image.

Note that this release-iso action is not a replacement for a full-blown release automation like [release-please](https://github.com/googleapis/release-please).

## Just

The `just` task runner is included in `ublue-os/main`-derived images, and we have provided several template commands which help you perform further customization after first boot.
Expand Down
5 changes: 5 additions & 0 deletions boot_menu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
ublue_variants:
- label: ublue-os/startingpoint
ks: /kickstart/ublue-os.ks
flavors:
- label: startingpoint

0 comments on commit a2b8056

Please sign in to comment.