docs: Update ChangeLog and README.md for 9.3.0 #421
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release | |
| on: | |
| push: | |
| tags: | |
| - 'v*' | |
| jobs: | |
| build: | |
| name: Build and upload artifacts | |
| runs-on: ubuntu-latest | |
| container: archlinux:latest | |
| steps: | |
| - name: Install dependencies | |
| run: pacman --noconfirm -Syu && pacman --needed --noconfirm -S base-devel gnupg gzip bzip2 lzip zstd git autoconf automake nasm curl mtools llvm clang lld mingw-w64-gcc | |
| - name: Import GPG public key | |
| run: gpg --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys 05D29860D0A0668AAEFB9D691F3C021BECA23821 | |
| - name: Import GPG private key | |
| run: echo "$MINTSUKI_PRIVATE_KEY" | gpg --batch --import | |
| env: | |
| MINTSUKI_PRIVATE_KEY: ${{ secrets.MINTSUKI_PRIVATE_KEY }} | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: '0' | |
| - name: Git config | |
| run: | | |
| set -e | |
| git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
| git config --global user.name 'Mintsuki' | |
| git config --global user.email 'mintsuki@protonmail.com' | |
| git config --global user.signingkey 05D29860D0A0668AAEFB9D691F3C021BECA23821 | |
| - name: Get tag name | |
| run: echo "TAG_NAME=$(git describe --exact-match --tags $(git log -n1 --pretty='%h'))" >> $GITHUB_ENV | |
| - name: Get branch name | |
| run: echo "BRANCH_NAME=$(echo "$TAG_NAME" | grep -o 'v[0-9]\+\.')x" >> $GITHUB_ENV | |
| - name: Regenerate | |
| run: ./bootstrap | |
| - name: Create build dir | |
| run: mkdir -p build | |
| - name: Configure | |
| run: cd build && ../configure --enable-all TOOLCHAIN_FOR_TARGET=llvm | |
| - name: Build the bootloader | |
| run: make -C build | |
| - name: Clean limine | |
| run: rm build/bin/limine | |
| - name: Build limine for Windows | |
| run: make -C build/bin CC="i686-w64-mingw32-gcc" CFLAGS="-O2 -pipe" CPPFLAGS="-D__USE_MINGW_ANSI_STDIO" limine | |
| - name: Strip limine for Windows | |
| run: i686-w64-mingw32-strip build/bin/limine.exe | |
| - name: Copy LICENSE to bin | |
| run: cp COPYING build/bin/LICENSE | |
| - name: Copy install-sh to bin | |
| run: cp build-aux/install-sh build/bin/ | |
| - name: Copy limine.h to bin | |
| run: cp limine.h build/bin/ | |
| - name: Remove limine-bios-hdd.bin | |
| run: rm build/bin/limine-bios-hdd.bin | |
| - name: Push binaries to binary branch | |
| run: | | |
| set -e | |
| git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/limine-bootloader/limine.git | |
| git fetch --all | |
| git checkout $BRANCH_NAME-binary || git checkout --orphan $BRANCH_NAME-binary | |
| rm -rf $(ls -a | grep -v '^\.git$' | grep -v '^\.\.$' | grep -v '^\.$' | grep -v '^build$') | |
| cp -r build/bin/. ./ | |
| rm -rf build | |
| git add -f . | |
| git commit -m "Binary release $TAG_NAME" -S | |
| git push origin $BRANCH_NAME-binary | |
| git tag $TAG_NAME-binary -s -m $TAG_NAME-binary | |
| git push origin $TAG_NAME-binary | |
| - name: Cleanup source tree | |
| run: git checkout $TAG_NAME && rm -rf * && git checkout . | |
| - name: Package release tarball | |
| run: ./bootstrap && ./configure --enable-all && make dist | |
| - name: Sign release tarball | |
| run: | | |
| set -e | |
| for f in limine-*.tar.*; do \ | |
| gpg --batch --default-key 05D29860D0A0668AAEFB9D691F3C021BECA23821 --detach-sign $f; \ | |
| done \ | |
| - name: Create release notes | |
| run: | | |
| cat <<EOF >rel_notes.txt | |
| Changelog can be found [here](https://github.com/limine-bootloader/limine/blob/$TAG_NAME/ChangeLog). | |
| Binary release can be found [here](https://github.com/limine-bootloader/limine/tree/$TAG_NAME-binary). | |
| EOF | |
| cat <<'EOF' >>rel_notes.txt | |
| Tarballs are signed using key ID `05D29860D0A0668AAEFB9D691F3C021BECA23821` which can be obtained from a keyserver such as `keyserver.ubuntu.com`. | |
| Import the public key with: | |
| ```bash | |
| gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys 05D29860D0A0668AAEFB9D691F3C021BECA23821 | |
| ``` | |
| In order to verify the tarball with the given signature, do: | |
| ```bash | |
| gpg --verify <tarball sig file> <associated tarball> | |
| ``` | |
| EOF | |
| - name: Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| body_path: rel_notes.txt | |
| files: | | |
| limine-*.tar.* | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |