diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 000000000..8c0cb870f --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,70 @@ +name: CI + +on: + push: + pull_request: + workflow_dispatch: + release: + types: [published] + +jobs: + build-macos: + name: Build Clover Release + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + + - name: Manage Version + run: | + git fetch --prune --unshallow --tags + echo "CUR_TAG=$(git tag -l | tail -1)" >> $GITHUB_ENV + echo "GIT_SHA=$(git rev-parse --short HEAD)" >> $GITHUB_ENV + + - name: Update CloverHackyColor/OpenCorePkg fork + run: git submodule init && git submodule update + + - name: Install Dependencies + run: brew install p7zip + env: + HOMEBREW_NO_INSTALL_CLEANUP: 1 + HOMEBREW_NO_AUTO_UPDATE: 1 + + - name: Build Clover Pack + run: ./buildme "" ci + + - name: Prepare Release Packs + run: | + (cd "CloverPackage/CloverV2/EFI/CLOVER/" && zip -q "CLOVERX64.efi.zip" "CLOVERX64.efi" || exit 1) + (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/Clover.app*.pkg 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: Generate Release Notes + run: | + echo 'The latest ten updates are:' >> ReleaseNotes.md + git log -"10" --format="- %H %s" | sed '/^$/d' >> ReleaseNotes.md + echo '' >> ReleaseNotes.md + /usr/bin/sed -i "" "s:sym/Clover:Clover:g" CloverPackage/sym/Clover*.md5 + cat CloverPackage/sym/Clover*.md5 >> ReleaseNotes.md + + - name: Upload to Artifacts + uses: actions/upload-artifact@v2 + with: + name: Clover beta-${{ env.GIT_SHA }} + path: | + *.7z + Clover.app*.pkg + CloverV2*.zip + CLOVERX64.efi.zip + Clover_r*.pkg + + - name: Upload to Release + if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') + uses: ncipollo/release-action@v1 + with: + artifacts: *.7z,Clover.app*.pkg,CloverV2*.zip,CLOVERX64.efi.zip,Clover_r*.pkg + bodyFile: ReleaseNotes.md + name: Release v5.1 r${{ env.CUR_TAG }} + prerelease: false + tag: ${{ env.CUR_TAG }} + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/buildme b/buildme index 409eff3ae..1cb224541 100755 --- a/buildme +++ b/buildme @@ -376,10 +376,11 @@ menu # Main set -e -if [[ "$2" == travis ]]; then +if [[ "$2" == ci ]]; then buildClover buildPkg buildIso + buildApp else menu fi