Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 8 additions & 94 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,13 @@ on:
- '*'
pull_request:
workflow_dispatch:
inputs:
alpha_build:
description: 'Publish as Clover-Build-Alpha rolling_release'
required: false
default: true
type: boolean

jobs:
build-macos:
name: Build Clover Release
runs-on: macos-latest
permissions:
contents: write
concurrency:
group: ${{ ((github.event_name == 'workflow_dispatch' && inputs.alpha_build == true) || (github.event_name == 'push' && github.ref == 'refs/heads/master')) && 'clover-alpha-release' || format('build-{0}-{1}', github.ref, github.sha) }}
cancel-in-progress: false
steps:
- uses: actions/checkout@v7
with:
Expand Down Expand Up @@ -54,105 +45,28 @@ jobs:
./buildme "" ci
- name: Prepare Release Packs
run: |
shopt -s nullglob
(cd "CloverPackage/CloverV2/EFI/CLOVER/" && zip -q "CLOVERX64.efi.zip" "CLOVERX64.efi" || exit 1)
(cd CloverPackage/sym/CloverISO-*/ && 7z a Clover-${{ env.CUR_TAG }}-X64.iso.7z *.iso || exit 1)
releaseItems=(CloverPackage/sym/CloverISO*/*.7z CloverPackage/sym/CloverV2*.zip CloverPackage/CloverV2/EFI/CLOVER/CLOVERX64.efi.zip CloverPackage/sym/Clover*.pkg)
(cd "CloverPackage/sym/CloverISO-${{ env.CUR_TAG }}" && 7z a Clover-${{ env.CUR_TAG }}-X64.iso.7z *.iso || exit 1)
releaseItems=(CloverPackage/sym/CloverISO*/*.7z CloverPackage/sym/CloverV2*.zip CloverPackage/CloverV2/EFI/CLOVER/CLOVERX64.efi.zip CloverPackage/sym/Clover_r*.pkg)
for releaseItem in "${releaseItems[@]}"; do cp -Rf "${releaseItem}" ./ || exit 1; done

- name: Rename Release Assets with Commit SHA
run: |
shopt -s nullglob
echo "Renaming release assets to include commit SHA (${{ env.GIT_SHA }}) so filenames change on every build..."
for f in *.7z; do
base="${f%.7z}"
mv -v "$f" "${base}-${{ env.GIT_SHA }}.7z"
done
for f in CloverV2*.zip; do
base="${f%.zip}"
mv -v "$f" "${base}-${{ env.GIT_SHA }}.zip"
done
for f in CLOVERX64.efi.zip; do
base="${f%.zip}"
mv -v "$f" "${base}-${{ env.GIT_SHA }}.zip"
done
for f in Clover*.pkg; do
base="${f%.pkg}"
mv -v "$f" "${base}-${{ env.GIT_SHA }}.pkg"
done


- name: Upload to Artifacts
uses: actions/upload-artifact@v7
with:
name: Clover-GCC-16.1.0-${{ env.GIT_SHA }}
path: |
*.7z
CloverV2*.zip
CLOVERX64.efi*.zip
Clover*.pkg

- name: Verify Release Assets
run: |
shopt -s nullglob
missing=()
for pattern in '*.7z' 'CloverV2*.zip' 'CLOVERX64.efi*.zip' 'Clover*.pkg'; do
files=($pattern)
if [ ${#files[@]} -eq 0 ]; then missing+=("$pattern"); fi
done
if [ ${#missing[@]} -gt 0 ]; then
echo "::error::Missing expected release artifact(s): ${missing[*]}"
exit 1
fi
CLOVERX64.efi.zip
Clover_r*.pkg

- name: Publish Tagged Release
- name: Publish Release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v3
with:
files: |
*.7z
CloverV2*.zip
CLOVERX64.efi*.zip
Clover*.pkg
CLOVERX64.efi.zip
Clover_r*.pkg
generate_release_notes: true
prerelease: ${{ contains(github.ref_name, 'alpha') || contains(github.ref_name, 'beta') }}

- name: Publish Alpha Rolling Release
if: (github.event_name == 'workflow_dispatch' && inputs.alpha_build == true) || (github.event_name == 'push' && github.ref == 'refs/heads/master')
uses: softprops/action-gh-release@v3
with:
tag_name: Clover-Build-Alpha
name: "Clover Build Alpha (${{ env.GIT_SHA }})"
body: |
Automated alpha build from commit `${{ env.GIT_SHA }}` on branch `${{ github.ref_name }}`.
This is a rolling pre-release and will be overwritten by future alpha builds.
files: |
*.7z
CloverV2*.zip
CLOVERX64.efi*.zip
Clover*.pkg
generate_release_notes: false
prerelease: true
make_latest: false

- name: Remove Stale Alpha Release Assets
if: (github.event_name == 'workflow_dispatch' && inputs.alpha_build == true) || (github.event_name == 'push' && github.ref == 'refs/heads/master')
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
if ! gh release view Clover-Build-Alpha >/dev/null 2>&1; then
echo "Clover-Build-Alpha release does not exist yet; skipping asset cleanup."
exit 0
fi

shopt -s nullglob
current=(*.7z CloverV2*.zip CLOVERX64.efi*.zip Clover*.pkg)
gh release view Clover-Build-Alpha --json assets --jq '.assets[].name' |
while IFS= read -r asset; do
keep=false
for f in "${current[@]}"; do
if [ "$f" = "$asset" ]; then keep=true; break; fi
done
if [ "$keep" = false ]; then
gh release delete-asset Clover-Build-Alpha "$asset" --yes
fi
done
16 changes: 2 additions & 14 deletions CloverPackage/makeV2
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,13 @@ cd "$(dirname $([ -L $0 ] && readlink $0 || echo $0))"
ROOT="$PWD"
SYMROOT="${ROOT}"/sym
mkdir -p "$SYMROOT"

REVISION=$(git describe --tags "$(git rev-list --tags --max-count=1)")

# Keep the traditional "r" prefix for numeric tags only.
# Non-numeric tags are used exactly as they are.
if [[ "$REVISION" =~ ^[0-9]+$ ]]; then
REVISION="r${REVISION}"
fi

REVISION_SUFFIX="${REVISION#Clover}"
REVISION_SUFFIX="${REVISION_SUFFIX#[-_]}"

# Remove previous revision zip
rm -rf $SYMROOT/CloverV2-*.zip

# zip CloverV2, excluding all .empty and all .DS_Store
zip -qr CloverV2-${REVISION_SUFFIX}.zip CloverV2 -x "*/.DS_Store" "*/.empty"

mv CloverV2-${REVISION_SUFFIX}.zip $SYMROOT
zip -qr CloverV2-${REVISION}.zip CloverV2 -x "*/.DS_Store" "*/.empty"
mv CloverV2-${REVISION}.zip $SYMROOT

open "$SYMROOT"

Expand Down
37 changes: 10 additions & 27 deletions CloverPackage/makeiso
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,7 @@ EFIROOT=${SRCROOT}/CloverV2/EFI
BASETOOLS_DIR=${SRCROOT}/../BaseTools/Source/C/bin

REVISION=$(git describe --tags $(git rev-list --tags --max-count=1))

# Keep the traditional "r" prefix for numeric tags only.
# Non-numeric tags are used exactly as they are.
if [[ "$REVISION" =~ ^[0-9]+$ ]]; then
REVISION="r${REVISION}"
fi

REVISION_SUFFIX="${REVISION#Clover}"
REVISION_SUFFIX="${REVISION_SUFFIX#[-_]}"

PRODUCT=Clover-${REVISION_SUFFIX}
PRODUCT=Clover-${REVISION}
CDLABEL=${PRODUCT}-X64
ISOIMAGE=${SYMROOT}/${CDLABEL}.iso

Expand Down Expand Up @@ -156,20 +146,17 @@ cp -f ${CLOVERROOT}/BootSectors/boot1f32 ${IMGROOT}/usr/standalone/i386
cp -f ${CLOVERROOT}/BootSectors/boot1f32alt ${IMGROOT}/usr/standalone/i386
cp -f ${CLOVERROOT}/BootSectors/boot1x ${IMGROOT}/usr/standalone/i386
cp -f ${CLOVERROOT}/BootSectors/boot1xalt ${IMGROOT}/usr/standalone/i386

# #ifdef CONFIG_FDISK440
# cp -f ${CLOVERROOT}/BootSectors/fdisk440 ${IMGROOT}/usr/bin
# #endif

rm -rf ${IMGROOT}/.s*
rm -rf ${IMGROOT}/*/.s*
rm -rf ${IMGROOT}/*/*/.s*
rm -rf ${IMGROOT}/*/*/*/.s*
rm -rf ${IMGROOT}/*/*/*/*/.s*
find "${IMGROOT}" -name '.DS_Store' -exec rm -R -f {} \; 2>/dev/null

echo "[HDIUTIL] ${ISOIMAGE}"
mkdir -p ${SYMROOT}/CloverISO-${REVISION_SUFFIX}
mkdir -p ${SYMROOT}/CloverISO-${REVISION}

if [[ "$SYSNAME" == Linux ]]; then
genisoimage -J -hfs -hfs-volid ${CDLABEL} -D -b usr/standalone/i386/cdboot -no-emul-boot -quiet -o "${ISOIMAGE}" ${IMGROOT}
Expand All @@ -178,26 +165,22 @@ hdiutil makehybrid -iso -joliet -hfs -hfs-volume-name ${CDLABEL} \
-eltorito-boot ${CDBOOT} -no-emul-boot -ov -o "${ISOIMAGE}" \
${IMGROOT} -quiet
fi

mv -f ${ISOIMAGE} ${SYMROOT}/CloverISO-${REVISION_SUFFIX}/

echo "[TAR] CloverISO-${REVISION_SUFFIX}"
tar -cv -f ${SYMROOT}/CloverISO-${REVISION_SUFFIX}.tar -C ${SYMROOT}/CloverISO-${REVISION_SUFFIX} .

echo "[LZMA] CloverISO-${REVISION_SUFFIX}"
mv -f ${ISOIMAGE} ${SYMROOT}/CloverISO-${REVISION}/
echo "[TAR] CloverISO-${REVISION}"
tar -cv -f ${SYMROOT}/CloverISO-${REVISION}.tar -C ${SYMROOT}/CloverISO-${REVISION} .
echo "[LZMA] CloverISO-${REVISION}"

if [[ "$SYSNAME" == Linux ]]; then
xz -f -S .lzma ${SYMROOT}/CloverISO-${REVISION_SUFFIX}.tar
xz -f -S .lzma ${SYMROOT}/CloverISO-${REVISION}.tar
else
"$BASETOOLS_DIR"/LzmaCompress -e -o ${SYMROOT}/CloverISO-${REVISION_SUFFIX}.tar.lzma ${SYMROOT}/CloverISO-${REVISION_SUFFIX}.tar
"$BASETOOLS_DIR"/LzmaCompress -e -o ${SYMROOT}/CloverISO-${REVISION}.tar.lzma ${SYMROOT}/CloverISO-${REVISION}.tar
fi

rm -rf ${SYMROOT}/CloverISO-${REVISION_SUFFIX}.tar
rm -rf ${SYMROOT}/CloverISO-${REVISION}.tar

# Open the final folder.
if [[ "${1:-}" == "" ]]; then
ls -la sym
[[ "$SYSNAME" != Linux ]] && open sym
fi

exit 0
exit 0
43 changes: 18 additions & 25 deletions CloverPackage/makepkg
Original file line number Diff line number Diff line change
Expand Up @@ -29,30 +29,23 @@ echo
}

while [[ $# -gt 0 ]]; do
case "${1}" in
--nothemes ) NOEXTRAS+=" --nothemes";;
# --noprefpane ) NOEXTRAS+=" --noprefpane";;
--norc ) NOEXTRAS+=" --norc";;
--nolegacy ) NOEXTRAS+=" --nolegacy";;
* ) printf "\e[1m%s\e[0m\n" "Invalid option: ${1} !"; usage; exit 1;;
esac
shift
case "${1}" in
--nothemes ) NOEXTRAS+=" --nothemes";;
# --noprefpane ) NOEXTRAS+=" --noprefpane";;
--norc ) NOEXTRAS+=" --norc";;
--nolegacy ) NOEXTRAS+=" --nolegacy";;
* ) printf "\e[1m%s\e[0m\n" "Invalid option: ${1} !"; usage; exit 1;;
esac
shift
done

# Workspace = edk2/Clover/CloverPackage

# Go to the script directory to create the package
cd "$(dirname "$0")"
cd "$(dirname $0)"

# Get the latest Git tag.
revision=$(git describe --tags $(git rev-list --tags --max-count=1))

# Keep the traditional "r" prefix for numeric tags only.
# Non-numeric tags are used exactly as they are.
if [[ "$revision" =~ ^[0-9]+$ ]]; then
revision="r${revision}"
fi

SRCROOT="${PWD}"
SYMROOT="${SRCROOT}"/sym
PKG_BUILD_DIR="${SYMROOT}"/package
Expand All @@ -73,7 +66,7 @@ echo "${revision}" > revision
# # Create a new sym directory
# mkdir sym

# Make the translation
# Make the translation
echo ""
echo "========= Translating Resources ========"
./package/translate.sh || exit $?
Expand All @@ -90,29 +83,29 @@ if [[ -n "$xcode_path" ]]; then
# make -C "${SRCROOT}"/CloverPrefpane || exit $?
# Make utils
make -C "${SRCROOT}"/utils || exit $?
# temporary use ready-to-use binaries
# mkdir -p "${SYMROOT}"/utils
# cp -v "${SRCROOT}"/utils/binaries/* "${SYMROOT}"/utils/
# temporary use ready-to-use binaries
# mkdir -p "${SYMROOT}"/utils
# cp -v "${SRCROOT}"/utils/binaries/* "${SYMROOT}"/utils/
fi

# Start to build installer.

package/buildpkg.sh --srcroot "$SRCROOT" --symroot "sym" --builddir "$PKG_BUILD_DIR" ${NOEXTRAS:1} || exit $?

#(cd sym ; zip Clover_r${revision}.zip \
# Clover_r${revision}.pkg \
# Clover_r${revision}.pkg.md5 )

# Workspace = edk2/Clover/CloverPackage/

# Remove temp files.
rm -f version
rm -f revision

# Workspace = edk2/Clover/CloverPackage
rm -f version # take this to clean old sources
rm -f revision

# Workspace = edk2/Clover/CloverPackage
# Open the final folder.
ls -la sym
open sym

# Finish building installer.

exit 0
2 changes: 1 addition & 1 deletion CloverPackage/package/Distribution
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<background file='background.tiff' alignment='topleft' scaling='proportional'/>
<background-darkAqua file='background.tiff' alignment='topleft' scaling='proportional'/>

<title>Clover %CLOVERREVISION% EFI bootloader</title>
<title>Clover r%CLOVERREVISION% EFI bootloader</title>

<script>

Expand Down
2 changes: 1 addition & 1 deletion CloverPackage/package/Resources/templates/Conclusion.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<body>
<div>
<p class="title">Clover EFI</p>
<p class="version">%CLOVERREVISION%</p>
<p class="version">r%CLOVERREVISION%</p>
<p class="p0"><br/></p>
<p class="complete">Installation Complete!</p>
</div>
Expand Down
2 changes: 1 addition & 1 deletion CloverPackage/package/Resources/templates/Welcome.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
<body>
<div>
<p class="title">Clover EFI</p>
<p class="version">%CLOVERREVISION% (%CLOVERSHA1%)</p>
<p class="version">r%CLOVERREVISION% (%CLOVERSHA1%)</p>
</div>
<p class="p0"><br/></p>
<p class="p1">Developers:</p>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ export -f GetNVRamKey
# ---------------------------------------------
echo "" > "$install_log"
echo "Clover EFI installer log - $( date )" >> "$install_log"
echo "Installer version: %CLOVERREVISION% (commit: %CLOVERSHA1%) EFI bootloader" >> "$install_log"
echo "Installer version: r%CLOVERREVISION% (commit: %CLOVERSHA1%) EFI bootloader" >> "$install_log"
echo "======================================================" >> "$install_log"
diskutil list >> "$install_log"

Expand Down
6 changes: 1 addition & 5 deletions CloverPackage/package/buildpkg.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1760,11 +1760,7 @@ generateChoices() {
makedistribution ()
{
declare -r distributionDestDir="${SYMROOT}"
if [[ "$CLOVER_REVISION" =~ ^r[0-9]+$ ]]; then
declare -r distributionFilename="${packagename// /}_${CLOVER_REVISION}.pkg"
else
declare -r distributionFilename="${CLOVER_REVISION}.pkg"
fi
declare -r distributionFilename="${packagename// /}_r${CLOVER_REVISION}.pkg"
declare -r distributionFilePath="${distributionDestDir}/${distributionFilename}"

rm -f "${distributionDestDir}/${packagename// /}"*.pkg
Expand Down
Loading
Loading