From 94ac33a612c77971d511a624934b11663f16378c Mon Sep 17 00:00:00 2001 From: Eriq Taing Date: Mon, 2 Jun 2025 11:48:42 -0400 Subject: [PATCH 1/5] Attempt to make building more granular --- .github/workflows/build-nvidia.yml | 45 ++++++++++++++++++++++++++++++ .github/workflows/build.yml | 5 +++- recipes/recipe_nvidia.yml | 4 +-- 3 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/build-nvidia.yml diff --git a/.github/workflows/build-nvidia.yml b/.github/workflows/build-nvidia.yml new file mode 100644 index 0000000..9523d44 --- /dev/null +++ b/.github/workflows/build-nvidia.yml @@ -0,0 +1,45 @@ +name: bluebuild +on: + schedule: + - cron: + "00 06 * * *" # build at 06:00 UTC every day + # (20 minutes after last ublue images start building) + push: + branches: + - main + paths-ignore: # don't rebuild if only documentation has changed + - "**.md" + + pull_request: + workflow_dispatch: # allow manually triggering builds +concurrency: + # only run one build at a time + group: ${{ github.workflow }}-${{ github.ref || github.run_id }} + cancel-in-progress: true +jobs: + bluebuild: + name: Build Custom Image + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + id-token: write + strategy: + fail-fast: false # stop GH from cancelling all matrix builds if one fails + matrix: + recipe: + # !! Add your recipes here + - recipe_nvidia.yml + steps: + # the build is fully handled by the reusable github action + - name: Build Custom Image + uses: blue-build/github-action@v1.8 + with: + recipe: ${{ matrix.recipe }} + cosign_private_key: ${{ secrets.SIGNING_SECRET }} + registry: 'git.hydrosaber.com' + registry_token: ${{ secrets.PACKAGE_BUILDER_TOKEN }} + pr_event_number: ${{ github.event.number }} + + # enabled by default, disable if your image is small and you want faster builds + maximize_build_space: true diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 46c7a30..170195f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,6 +9,10 @@ on: - main paths-ignore: # don't rebuild if only documentation has changed - "**.md" + - ".github/workflows/build-nvidia.yml" + - "files/scripts/nvidia/**" + - "recipes/components/nvidia-module.yml" + - "recipes/recipe_nvidia.yml" pull_request: workflow_dispatch: # allow manually triggering builds @@ -30,7 +34,6 @@ jobs: recipe: # !! Add your recipes here - recipe.yml - - recipe_nvidia.yml steps: # the build is fully handled by the reusable github action - name: Build Custom Image diff --git a/recipes/recipe_nvidia.yml b/recipes/recipe_nvidia.yml index 755a7f8..e39b71a 100644 --- a/recipes/recipe_nvidia.yml +++ b/recipes/recipe_nvidia.yml @@ -6,8 +6,8 @@ name: hydro-os-nvidia description: This is my personal OS image. # the base image to build on top of (FROM) and the version tag to use -base-image: quay.io/fedora-ostree-desktops/base-atomic -image-version: 42 # latest is also supported if you want new updates ASAP +base-image: git.hydrosaber.com/eriq12/hydro-os +image-version: latest # latest is also supported if you want new updates ASAP # module configuration, executed in order # you can include multiple instances of the same module -- 2.39.5 From fc879401b021796462c2925fd2a696d94ca2a7a0 Mon Sep 17 00:00:00 2001 From: Eriq Taing Date: Mon, 2 Jun 2025 12:03:29 -0400 Subject: [PATCH 2/5] Give build-nvidia a different name, bluebuild-nvidia, and restricted to only on changes to certain paths and when workflow buildbuild has been completed --- .github/workflows/build-nvidia.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build-nvidia.yml b/.github/workflows/build-nvidia.yml index 9523d44..ed6281c 100644 --- a/.github/workflows/build-nvidia.yml +++ b/.github/workflows/build-nvidia.yml @@ -1,17 +1,17 @@ -name: bluebuild +name: bluebuild-nvidia on: - schedule: - - cron: - "00 06 * * *" # build at 06:00 UTC every day - # (20 minutes after last ublue images start building) push: branches: - main - paths-ignore: # don't rebuild if only documentation has changed - - "**.md" - - pull_request: + paths: # rebuild only if nvidia files have changed + - ".github/workflows/build-nvidia.yml" + - "files/scripts/nvidia/**" + - "recipes/components/nvidia-module.yml" + - "recipes/recipe_nvidia.yml" workflow_dispatch: # allow manually triggering builds + workflow_run: + workflows: ["bluebuild"] + types: [completed] concurrency: # only run one build at a time group: ${{ github.workflow }}-${{ github.ref || github.run_id }} -- 2.39.5 From c1d7044fc98b854e7c5276becdfec7eb34813a00 Mon Sep 17 00:00:00 2001 From: Eriq Taing Date: Mon, 2 Jun 2025 13:41:22 -0400 Subject: [PATCH 3/5] Reduce all duplicate modules from recipe_nvidia --- recipes/recipe_nvidia.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/recipes/recipe_nvidia.yml b/recipes/recipe_nvidia.yml index e39b71a..78fc134 100644 --- a/recipes/recipe_nvidia.yml +++ b/recipes/recipe_nvidia.yml @@ -12,14 +12,7 @@ image-version: latest # latest is also supported if you want new updates ASAP # module configuration, executed in order # you can include multiple instances of the same module modules: - - from-file: components/sddm-module.yml - - from-file: components/base-module.yml - from-file: components/nvidia-module.yml - - from-file: components/sys-files-module.yml - - from-file: components/hyprland-module.yml - - from-file: components/steam-module.yml - - from-file: components/autostart-module.yml - - from-file: components/default-flatpak.yml - type: signing # this sets up the proper policy & signing files for signed images to work fully -- 2.39.5 From 15ed5250c7f740b99f6f8bdee7afb57c0cab6230 Mon Sep 17 00:00:00 2001 From: Eriq Taing Date: Mon, 2 Jun 2025 16:31:03 -0400 Subject: [PATCH 4/5] Reverted changes as order cannot be easily setup. Both build yml files are independent --- .github/workflows/build-nvidia.yml | 15 ++++++--------- recipes/recipe_nvidia.yml | 11 +++++++++-- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build-nvidia.yml b/.github/workflows/build-nvidia.yml index ed6281c..7369ca1 100644 --- a/.github/workflows/build-nvidia.yml +++ b/.github/workflows/build-nvidia.yml @@ -1,17 +1,14 @@ name: bluebuild-nvidia on: + schedule: + - cron: + "00 06 * * *" # build at 06:00 UTC every day + # (20 minutes after last ublue images start building) push: branches: - main - paths: # rebuild only if nvidia files have changed - - ".github/workflows/build-nvidia.yml" - - "files/scripts/nvidia/**" - - "recipes/components/nvidia-module.yml" - - "recipes/recipe_nvidia.yml" - workflow_dispatch: # allow manually triggering builds - workflow_run: - workflows: ["bluebuild"] - types: [completed] + paths-ignore: # don't rebuild if only documentation has changed + - "**.md" concurrency: # only run one build at a time group: ${{ github.workflow }}-${{ github.ref || github.run_id }} diff --git a/recipes/recipe_nvidia.yml b/recipes/recipe_nvidia.yml index 78fc134..755a7f8 100644 --- a/recipes/recipe_nvidia.yml +++ b/recipes/recipe_nvidia.yml @@ -6,13 +6,20 @@ name: hydro-os-nvidia description: This is my personal OS image. # the base image to build on top of (FROM) and the version tag to use -base-image: git.hydrosaber.com/eriq12/hydro-os -image-version: latest # latest is also supported if you want new updates ASAP +base-image: quay.io/fedora-ostree-desktops/base-atomic +image-version: 42 # latest is also supported if you want new updates ASAP # module configuration, executed in order # you can include multiple instances of the same module modules: + - from-file: components/sddm-module.yml + - from-file: components/base-module.yml - from-file: components/nvidia-module.yml + - from-file: components/sys-files-module.yml + - from-file: components/hyprland-module.yml + - from-file: components/steam-module.yml + - from-file: components/autostart-module.yml + - from-file: components/default-flatpak.yml - type: signing # this sets up the proper policy & signing files for signed images to work fully -- 2.39.5 From 987d93b2d17ea43a0708f5cd997690ba59aa4879 Mon Sep 17 00:00:00 2001 From: Eriq Taing Date: Mon, 2 Jun 2025 16:41:32 -0400 Subject: [PATCH 5/5] Reintroduced on pull_request and workflow_dispatch --- .github/workflows/build-nvidia.yml | 2 ++ .github/workflows/build.yml | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-nvidia.yml b/.github/workflows/build-nvidia.yml index 7369ca1..223fb09 100644 --- a/.github/workflows/build-nvidia.yml +++ b/.github/workflows/build-nvidia.yml @@ -9,6 +9,8 @@ on: - main paths-ignore: # don't rebuild if only documentation has changed - "**.md" + pull_request: + workflow_dispatch: # allow manually triggering builds concurrency: # only run one build at a time group: ${{ github.workflow }}-${{ github.ref || github.run_id }} diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 170195f..a88032d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,6 @@ on: - "files/scripts/nvidia/**" - "recipes/components/nvidia-module.yml" - "recipes/recipe_nvidia.yml" - pull_request: workflow_dispatch: # allow manually triggering builds concurrency: -- 2.39.5