chore(ci): build isos (#794)

* chore(ci): build isos

* chore(ci): added image_tag for stable, updated version of action

* chore(ci): moved building ISOs into separate action

* chore(ci): fixed version

* chore(ci): registered workflow

* chore(ci): removed push

* chore(ci): renamed release-please to generate_changelog

* chore(ci): Added new upload action and readded push to test

* chore(ci): attempting upload using rclone action

* chore(ci): use colons instead of = sign

* chore(ci): try with latest

* chore(ci): refactored to use shell instead of action

* chore(ci): forgot export

* chore(ci): forgot secret access key

* chore(ci): removed ACL

* chore(ci): Updated isogenerator version

* Update .github/workflows/build_iso.yml

Co-authored-by: Jorge O. Castro <jorge.castro@gmail.com>

---------

Co-authored-by: Kyle Gospodnetich <me@kylegospodneti.ch>
Co-authored-by: Jorge O. Castro <jorge.castro@gmail.com>
This commit is contained in:
Noel Miller 2024-02-23 14:11:15 -06:00 committed by GitHub
parent aaec23b882
commit a65d377bd4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 84 additions and 70 deletions

62
.github/workflows/build_iso.yml vendored Normal file
View File

@ -0,0 +1,62 @@
name: Build Bazzite ISOs
on:
workflow_dispatch:
env:
IMAGE_REGISTRY: ghcr.io/${{ github.repository_owner }}
concurrency:
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
cancel-in-progress: true
jobs:
build-iso:
runs-on: ubuntu-22.04
permissions:
contents: read
packages: write
id-token: write
container:
image: fedora:${{ matrix.major_version }}
options: "--privileged"
volumes:
- "/:/host"
strategy:
fail-fast: false
matrix:
image_name: [bazzite, bazzite-nvidia, bazzite-gnome, bazzite-gnome-nvidia, bazzite-deck, bazzite-deck-gnome, bazzite-ally, bazzite-ally-gnome, bazzite-asus, bazzite-gnome-asus, bazzite-asus-nvidia, bazzite-gnome-asus-nvidia]
major_version: [39]
image_tag: [stable]
steps:
- name: Build ISOs
#if: github.event_name == 'push' && github.ref_name == github.event.repository.default_branch
uses: ublue-os/isogenerator@1.0.3
with:
ARCH: x86_64
IMAGE_NAME: ${{ matrix.image_name }}
IMAGE_REPO: ghcr.io/ublue-os
VARIANT: 'Kinoite'
VERSION: ${{ matrix.major_version }}
IMAGE_TAG: ${{ matrix.image_tag }}
ACTION_REPO: ublue-os/isogenerator
ACTION_REF: 1.0.3
- name: Upload ISOs to R2
shell: bash
run: |
export RCLONE_CONFIG_R2_TYPE=s3
export RCLONE_CONFIG_R2_PROVIDER=Cloudflare
export RCLONE_CONFIG_R2_ACCESS_KEY_ID=${{ secrets.R2_ACCESS_KEY_ID }}
export RCLONE_CONFIG_R2_SECRET_ACCESS_KEY=${{ secrets.R2_SECRET_ACCESS_KEY }}
export RCLONE_CONFIG_R2_REGION=auto
export RCLONE_CONFIG_R2_ENDPOINT=${{ secrets.R2_ENDPOINT }}
dnf install -y rclone
rclone copy ./end_iso R2:bazzite
# - name: Upload ISOs to R2
# uses: ryand56/r2-upload-action@latest
# with:
# r2-account-id: ${{ secrets.R2_ACCOUNT_ID }}
# r2-access-key-id: ${{ secrets.R2_ACCESS_KEY_ID }}
# r2-secret-access-key: ${{ secrets.R2_SECRET_ACCESS_KEY }}
# r2-bucket: ${{ secrets.R2_BUCKET }}
# source-dir: ./end_iso
# destination-dir: ./

View File

@ -0,0 +1,22 @@
on:
push:
branches:
- main
permissions:
contents: write
checks: write
actions: read
packages: write
pull-requests: write
name: Generate Changelog
jobs:
release-please:
runs-on: ubuntu-latest
steps:
- uses: google-github-actions/release-please-action@v4
id: release-please
with:
release-type: simple
package-name: release-please-action

View File

@ -1,70 +0,0 @@
on:
push:
branches:
- main
permissions:
contents: write
checks: write
actions: read
packages: write
pull-requests: write
name: Release Please
jobs:
release-please:
runs-on: ubuntu-latest
outputs:
releases_created: ${{ steps.release-please.outputs.releases_created }}
tag: ${{ steps.release-please.outputs.tag_name }}
upload_url: ${{ steps.release-please.outputs.upload_url }}
steps:
- uses: google-github-actions/release-please-action@v4
id: release-please
with:
release-type: simple
package-name: release-please-action
build-iso:
name: Generate and Release ISOs
runs-on: ubuntu-latest
needs: release-please
if: ${{ needs.release-please.outputs.releases_created == 'true' }}
container:
image: fedora:39
options: --privileged
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Generate ISO
uses: ublue-os/isogenerator@v2.3.1
id: isogenerator
with:
image-name: bazzite
installer-repo: releases
installer-major-version: 39
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: |
gh release upload \
${{ needs.release-please.outputs.tag }} \
./${{ steps.isogenerator.outputs.iso-path }} \
--repo ${{ github.repository_owner }}/${{ github.event.repository.name }} \
--clobber
- name: Upload SHA256SUM
env:
GITHUB_TOKEN: ${{ github.token }}
run: |
gh release upload \
${{ needs.release-please.outputs.tag }} \
./${{ steps.isogenerator.outputs.sha256sum-path }} \
--repo ${{ github.repository_owner }}/${{ github.event.repository.name }} \
--clobber