Release 0.9.0-rc2 #11
Workflow file for this run
This file contains 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: Create release artifacts | |
on: | |
push: | |
tags: | |
- v[0-9]* | |
jobs: | |
windows: | |
runs-on: windows-2022 | |
strategy: | |
matrix: | |
bits: [32, 64] | |
include: | |
- bits: 32 | |
arch: x86 | |
platform: Win32 | |
- bits: 64 | |
arch: x86_x64 | |
platform: x64 | |
fail-fast: false | |
steps: | |
- name: Get version from tag | |
shell: bash | |
run: | # Turn "vX.Y.Z" into "X.Y.Z" | |
VERSION="${{ github.ref_name }}" | |
echo "version=${VERSION#v}" >> $GITHUB_ENV | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Install deps | |
run: .github/scripts/get_win_deps.ps1 | |
- name: Check libraries cache | |
id: cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
zbuild | |
pngbuild | |
key: ${{ matrix.arch }}-${{ hashFiles('zlib/**', 'libpng/**') }} | |
- name: Build zlib | |
if: steps.cache.outputs.cache-hit != 'true' | |
run: | # BUILD_SHARED_LIBS causes the output DLL to be correctly called `zlib1.dll` | |
cmake -S zlib -B zbuild -A ${{ matrix.platform }} -Wno-dev -DCMAKE_INSTALL_PREFIX=install_dir -DBUILD_SHARED_LIBS=ON | |
cmake --build zbuild --config Release -j | |
- name: Install zlib | |
run: | | |
cmake --install zbuild | |
- name: Build libpng | |
if: steps.cache.outputs.cache-hit != 'true' | |
shell: bash | |
run: | | |
cmake -S libpng -B pngbuild -A ${{ matrix.platform }} -Wno-dev -DCMAKE_INSTALL_PREFIX=install_dir -DPNG_SHARED=ON -DPNG_STATIC=OFF -DPNG_TESTS=OFF | |
cmake --build pngbuild --config Release -j | |
- name: Install libpng | |
run: | | |
cmake --install pngbuild | |
- name: Build Windows binaries | |
shell: bash | |
run: | | |
cmake -S . -B build -A ${{ matrix.platform }} -DCMAKE_INSTALL_PREFIX=install_dir -DCMAKE_BUILD_TYPE=Release | |
cmake --build build --config Release -j --verbose | |
cmake --install build --verbose --prefix install_dir --strip | |
- name: Package binaries | |
run: | | |
Compress-Archive -LiteralPath @("install_dir/bin/rgbasm.exe", "install_dir/bin/rgblink.exe", "install_dir/bin/rgbfix.exe", "install_dir/bin/rgbgfx.exe", "install_dir/bin/zlib1.dll", "install_dir/bin/libpng16.dll") "rgbds-${{ env.version }}-win${{ matrix.bits }}.zip" | |
- name: Upload Windows binaries | |
uses: actions/upload-artifact@v4 | |
with: | |
name: win${{ matrix.bits }} | |
path: rgbds-${{ env.version }}-win${{ matrix.bits }}.zip | |
macos: | |
runs-on: macos-14 | |
steps: | |
- name: Get version from tag | |
shell: bash | |
run: | # Turn "refs/tags/vX.Y.Z" into "X.Y.Z" | |
VERSION="${{ github.ref_name }}" | |
echo "version=${VERSION#v}" >> $GITHUB_ENV | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Install deps | |
shell: bash | |
run: | | |
./.github/scripts/install_deps.sh macos | |
- name: Build libpng | |
run: | | |
./.github/scripts/build_libpng.sh | |
# We force linking libpng statically; the other libs are provided by macOS itself | |
- name: Build binaries | |
run: | | |
make -kj CXXFLAGS="-O3 -flto -DNDEBUG -mmacosx-version-min=10.9 -arch x86_64 -arch arm64" PNGCFLAGS="-I libpng-staging/include" PNGLDLIBS="libpng-staging/lib/libpng.a -lz" Q= | |
strip rgb{asm,link,fix,gfx} | |
- name: Package binaries | |
run: | | |
zip --junk-paths rgbds-${{ env.version }}-macos.zip rgb{asm,link,fix,gfx} man/* .github/scripts/install.sh | |
- name: Upload macOS binaries | |
uses: actions/upload-artifact@v4 | |
with: | |
name: macos | |
path: rgbds-${{ env.version }}-macos.zip | |
linux: | |
runs-on: ubuntu-20.04 # Oldest supported, for best glibc compatibility. | |
steps: | |
- name: Get version from tag | |
shell: bash | |
run: | # Turn "refs/tags/vX.Y.Z" into "X.Y.Z" | |
VERSION="${{ github.ref_name }}" | |
echo "version=${VERSION#v}" >> $GITHUB_ENV | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Install deps | |
shell: bash | |
run: | | |
./.github/scripts/install_deps.sh ubuntu-20.04 | |
- name: Build binaries | |
run: | | |
make -kj WARNFLAGS="-Wall -Wextra -pedantic -static" PKG_CONFIG="pkg-config --static" Q= | |
strip rgb{asm,link,fix,gfx} | |
- name: Package binaries | |
run: | | |
tar caf rgbds-${{ env.version }}-linux-x86_64.tar.xz --transform='s#.*/##' rgb{asm,link,fix,gfx} man/* .github/scripts/install.sh | |
- name: Upload Linux binaries | |
uses: actions/upload-artifact@v4 | |
with: | |
name: linux | |
path: rgbds-${{ env.version }}-linux-x86_64.tar.xz | |
release: | |
runs-on: ubuntu-latest | |
needs: [windows, macos, linux] | |
permissions: | |
contents: write | |
steps: | |
- name: Get version from tag | |
shell: bash | |
run: | # Turn "refs/tags/vX.Y.Z" into "X.Y.Z" | |
VERSION="${{ github.ref_name }}" | |
echo "version=${VERSION#v}" >> $GITHUB_ENV | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Package sources | |
run: | | |
make dist Q= | |
ls | |
- name: Download Linux binaries | |
uses: actions/download-artifact@v4 | |
- name: Release | |
uses: softprops/action-gh-release@v2 | |
with: | |
body: | | |
Please ensure that the packages below work properly. | |
Once that's done, replace this text with the changelog, un-draft the release, and update the `release` branch. | |
By the way, if you forgot to update `include/version.hpp`, RGBASM's version test is gonna fail in the tag's regression testing! (Use `git push --delete origin <tag>` to delete it) | |
draft: true # Don't publish the release quite yet... | |
prerelease: ${{ contains(github.ref, '-rc') }} | |
files: | | |
win32/rgbds-${{ env.version }}-win32.zip | |
win64/rgbds-${{ env.version }}-win64.zip | |
macos/rgbds-${{ env.version }}-macos.zip | |
linux/rgbds-${{ env.version }}-linux-x86_64.tar.xz | |
rgbds-${{ env.version }}.tar.gz | |
fail_on_unmatched_files: true | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |