diff --git a/.github/workflows/build-stable.yml b/.github/workflows/build-stable.yml index 9b1668e..4e58f6c 100644 --- a/.github/workflows/build-stable.yml +++ b/.github/workflows/build-stable.yml @@ -4,8 +4,8 @@ on: pull_request: branches: - main - #schedule: - # - cron: '50 2 * * *' # 2:50am-ish UTC everyday (approx 45 minutes after akmods images run) + schedule: + - cron: '50 2 * * *' # 2:50am-ish UTC everyday (approx 45 minutes after akmods images run) workflow_dispatch: jobs: diff --git a/.github/workflows/reusable-build.yml b/.github/workflows/reusable-build.yml index 02c7606..85aa0b3 100644 --- a/.github/workflows/reusable-build.yml +++ b/.github/workflows/reusable-build.yml @@ -53,12 +53,6 @@ jobs: skopeo inspect docker://quay.io/fedora/fedora-coreos:${{ inputs.coreos_version }} > inspect.json - kernel=$(jq -r '.["Labels"]["ostree.linux"]' inspect.json) - if [ -z "$kernel" ] || [ "null" = "$kernel" ]; then - echo "inspected linux (kernel) version must not be empty or null" - exit 1 - fi - image=$(jq -r '.["Labels"]["org.opencontainers.image.version"]' inspect.json) if [ -z "$image" ] || [ "null" = "$image" ]; then echo "inspected image version must not be empty or null" @@ -71,6 +65,13 @@ jobs: exit 1 fi + kernel=$(skopeo inspect docker://ghcr.io/ublue-os/coreos-${{ inputs.coreos_version }}-kernel:${fedora} | jq -r '.["Labels"]["ostree.linux"]') + if [ -z "$kernel" ] || [ "null" = "$kernel" ]; then + echo "inspected linux (kernel) version must not be empty or null" + exit 1 + fi + + echo "kernel=$kernel" >> $GITHUB_OUTPUT echo "image=$image" >> $GITHUB_OUTPUT echo "fedora=$fedora" >> $GITHUB_OUTPUT @@ -142,20 +143,16 @@ jobs: echo "env.KERNEL_VERSION must not be empty or null" exit 1 fi - skopeo inspect docker://quay.io/fedora/fedora-coreos:${{ inputs.coreos_version }} > inspect.json - kernel=$(jq -r '.["Labels"]["ostree.linux"]' inspect.json) - if [[ "${{ env.KERNEL_VERSION }}" != "$kernel"* ]]; then - echo "pulled coreos image kernel ($kernel) does not match expected kernel (${{ env.KERNEL_VERSION }})" - exit 1 - fi - skopeo inspect docker://${{ env.IMAGE_REGISTRY }}/${{ env.KERNEL_FLAVOR }}-kernel:${{ env.FEDORA_VERSION }} > inspect.json - kernel=$(jq -r '.["Labels"]["ostree.linux"]' inspect.json) + + #Use Podman Inspect instead of skopeo for local checks. + podman inspect ${{ env.IMAGE_REGISTRY }}/${{ env.KERNEL_FLAVOR }}-kernel:${{ env.FEDORA_VERSION }} > inspect.json + kernel=$(jq -r '.[]["Config"]["Labels"]["ostree.linux"]' inspect.json) if [[ "${{ env.KERNEL_VERSION }}" != "$kernel"* ]]; then echo "pulled kernel-cache image kernel ($kernel) does not match expected kernel (${{ env.KERNEL_VERSION }})" exit 1 fi - skopeo inspect docker://${{ env.IMAGE_REGISTRY }}/akmods:${{ env.KERNEL_FLAVOR }}-${{ env.FEDORA_VERSION }} > inspect.json - kernel=$(jq -r '.["Labels"]["ostree.linux"]' inspect.json) + podman inspect ${{ env.IMAGE_REGISTRY }}/akmods:${{ env.KERNEL_FLAVOR }}-${{ env.FEDORA_VERSION }} > inspect.json + kernel=$(jq -r '.[]["Config"]["Labels"]["ostree.linux"]' inspect.json) if [[ "${{ env.KERNEL_VERSION }}" != "$kernel"* ]]; then echo "pulled akmods image kernel ($kernel) does not match expected kernel (${{ env.KERNEL_VERSION }})" exit 1 @@ -166,8 +163,8 @@ jobs: shell: bash run: | set -x - skopeo inspect docker://${{ env.IMAGE_REGISTRY }}/akmods-nvidia:${{ env.KERNEL_FLAVOR }}-${{ env.FEDORA_VERSION }} > inspect.json - kernel=$(jq -r '.["Labels"]["ostree.linux"]' inspect.json) + podman inspect ${{ env.IMAGE_REGISTRY }}/akmods-nvidia:${{ env.KERNEL_FLAVOR }}-${{ env.FEDORA_VERSION }} > inspect.json + kernel=$(jq -r '.[]["Config"]["Labels"]["ostree.linux"]' inspect.json) if [[ "${{ env.KERNEL_VERSION }}" != "$kernel"* ]]; then echo "pulled akmods-nvidia image kernel ($kernel) does not match expected kernel (${{ env.KERNEL_VERSION }})" exit 1 @@ -178,8 +175,8 @@ jobs: shell: bash run: | set -x - skopeo inspect docker://${{ env.IMAGE_REGISTRY }}/akmods-zfs:${{ env.KERNEL_FLAVOR }}-${{ env.FEDORA_VERSION }} > inspect.json - kernel=$(jq -r '.["Labels"]["ostree.linux"]' inspect.json) + podman inspect ${{ env.IMAGE_REGISTRY }}/akmods-zfs:${{ env.KERNEL_FLAVOR }}-${{ env.FEDORA_VERSION }} > inspect.json + kernel=$(jq -r '.[]["Config"]["Labels"]["ostree.linux"]' inspect.json) if [[ "${{ env.KERNEL_VERSION }}" != "$kernel"* ]]; then echo "pulled akmods-zfs image kernel ($kernel) does not match expected kernel (${{ env.KERNEL_VERSION }})" exit 1 @@ -412,20 +409,14 @@ jobs: echo "env.KERNEL_VERSION must not be empty or null" exit 1 fi - skopeo inspect docker://quay.io/fedora/fedora-coreos:${{ inputs.coreos_version }} > inspect.json - kernel=$(jq -r '.["Labels"]["ostree.linux"]' inspect.json) - if [[ "${{ env.KERNEL_VERSION }}" != "$kernel"* ]]; then - echo "pulled coreos image kernel ($kernel) does not match expected kernel (${{ env.KERNEL_VERSION }})" - exit 1 - fi - skopeo inspect docker://${{ env.IMAGE_REGISTRY }}/${{ env.KERNEL_FLAVOR }}-kernel:${{ env.FEDORA_VERSION }} > inspect.json - kernel=$(jq -r '.["Labels"]["ostree.linux"]' inspect.json) + podman inspect ${{ env.IMAGE_REGISTRY }}/${{ env.KERNEL_FLAVOR }}-kernel:${{ env.FEDORA_VERSION }} > inspect.json + kernel=$(jq -r '.[]["Config"]["Labels"]["ostree.linux"]' inspect.json) if [[ "${{ env.KERNEL_VERSION }}" != "$kernel"* ]]; then echo "pulled kernel-cache image kernel ($kernel) does not match expected kernel (${{ env.KERNEL_VERSION }})" exit 1 fi - skopeo inspect docker://${{ env.IMAGE_REGISTRY }}/akmods:${{ env.KERNEL_FLAVOR }}-${{ env.FEDORA_VERSION }} > inspect.json - kernel=$(jq -r '.["Labels"]["ostree.linux"]' inspect.json) + podman inspect ${{ env.IMAGE_REGISTRY }}/akmods:${{ env.KERNEL_FLAVOR }}-${{ env.FEDORA_VERSION }} > inspect.json + kernel=$(jq -r '.[]["Config"]["Labels"]["ostree.linux"]' inspect.json) if [[ "${{ env.KERNEL_VERSION }}" != "$kernel"* ]]; then echo "pulled akmods image kernel ($kernel) does not match expected kernel (${{ env.KERNEL_VERSION }})" exit 1 @@ -436,8 +427,8 @@ jobs: shell: bash run: | set -x - skopeo inspect docker://${{ env.IMAGE_REGISTRY }}/akmods-nvidia:${{ env.KERNEL_FLAVOR }}-${{ env.FEDORA_VERSION }} > inspect.json - kernel=$(jq -r '.["Labels"]["ostree.linux"]' inspect.json) + podman inspect ${{ env.IMAGE_REGISTRY }}/akmods-nvidia:${{ env.KERNEL_FLAVOR }}-${{ env.FEDORA_VERSION }} > inspect.json + kernel=$(jq -r '.[]["Config"]["Labels"]["ostree.linux"]' inspect.json) if [[ "${{ env.KERNEL_VERSION }}" != "$kernel"* ]]; then echo "pulled akmods-nvidia image kernel ($kernel) does not match expected kernel (${{ env.KERNEL_VERSION }})" exit 1 @@ -448,8 +439,8 @@ jobs: shell: bash run: | set -x - skopeo inspect docker://${{ env.IMAGE_REGISTRY }}/akmods-zfs:${{ env.KERNEL_FLAVOR }}-${{ env.FEDORA_VERSION }} > inspect.json - kernel=$(jq -r '.["Labels"]["ostree.linux"]' inspect.json) + podman inspect ${{ env.IMAGE_REGISTRY }}/akmods-zfs:${{ env.KERNEL_FLAVOR }}-${{ env.FEDORA_VERSION }} > inspect.json + kernel=$(jq -r '.[]["Config"]["Labels"]["ostree.linux"]' inspect.json) if [[ "${{ env.KERNEL_VERSION }}" != "$kernel"* ]]; then echo "pulled akmods-zfs image kernel ($kernel) does not match expected kernel (${{ env.KERNEL_VERSION }})" exit 1 diff --git a/README.md b/README.md index 642e178..bde1c3c 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ Please take a look at the included modifications, and help us improve uCore if t ## Table of Contents +- [Announcements](#announcements) - [Features](#features) - [Images](#images) - [`fedora-coreos`](#fedora-coreos) @@ -43,6 +44,20 @@ Please take a look at the included modifications, and help us improve uCore if t - [DIY](#diy) - [Metrics](#metrics) +## Announcements + +### 2024.11.12 - uCore has updated to Fedora 41 + +As of today our upstream Fedora CoreOS stable image updated to Fedora 41 under the hood, so expect a lot of package updates. + +### 2024.11.12 - uCore *stable* has pinned to kernel version *6.11.3* + +Kernel version `6.11.3` was the previous *stable* update's kernel, and despite the update to Fedora 41, we've stuck with `6.11.3` rather than updating to `6.11.5` from upstream. + +This is due to a kernel bug in versions `6.11.4`/`6.11.5` which [breaks tailscale status reporting](https://github.com/tailscale/tailscale/issues/13863). As many users of uCore do use tailscale, we've decided to be extra cautious and hold back the kernel, even though the rest of stable updated as usual. + +We expect the next update of Fedora CoreOS to be on `6.11.6` per the current state of the testing stream. So uCore will follow when that update occurs. + ## Features The uCore project builds four images, each with different tags for different features.