Fix the release workflow, I think #298
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: Build Artifacts | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
paths-ignore: | |
- "**.md" | |
- ".gitignore" | |
- "*.gitlab-ci.yml" | |
jobs: | |
windows: | |
name: Windows (x86_64) | |
uses: ./.github/workflows/build.yaml | |
with: | |
archive-name: melondsds_libretro-win32-x86_64 | |
runs-on: windows-latest | |
target: win32 | |
info-dir: info | |
lib-ext: dll | |
shell: msys2 {0} | |
cmake-args: -DENABLE_SCCACHE=ON -DSCCACHE="C:/Users/runneradmin/.cargo/bin/sccache.exe" | |
macos: | |
name: macOS (Universal) | |
uses: ./.github/workflows/build.yaml | |
with: | |
archive-name: melondsds_libretro-macos-universal | |
runs-on: macos-latest | |
target: macos-universal | |
lib-ext: dylib | |
cmake-args: -DCMAKE_OSX_ARCHITECTURES:STRING="arm64;x86_64" -DENABLE_OGLRENDERER=OFF | |
# Disabled OpenGL on macOS due to https://github.com/JesseTG/melonds-ds/issues/12 | |
linux-x86_64: | |
name: Linux (x86_64) | |
uses: ./.github/workflows/build.yaml | |
with: | |
archive-name: melondsds_libretro-linux-x86_64 | |
target: linux-x86_64 | |
runs-on: ubuntu-latest | |
lib-ext: so | |
test-suite: true | |
linux-aarch64: | |
name: Linux (aarch64) | |
uses: ./.github/workflows/build.yaml | |
with: | |
archive-name: melondsds_libretro-linux-aarch64 | |
target: linux-aarch64 | |
runs-on: ubuntu-latest | |
lib-ext: so | |
cmake-args: -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -DPKG_CONFIG_EXECUTABLE=/usr/bin/aarch64-linux-gnu-pkg-config | |
android: | |
name: Android | |
uses: ./.github/workflows/build.yaml | |
with: | |
lib-ext: so | |
target: android | |
archive-name: melondsds_libretro-android | |
cmake-args: -DENABLE_OGLRENDERER=OFF -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=24 -DCMAKE_TOOLCHAIN_FILE="$ANDROID_NDK/build/cmake/android.toolchain.cmake" | |
runs-on: ubuntu-latest | |
# Disabled OpenGL on Android due to https://github.com/JesseTG/melonds-ds/issues/23 | |
ios: | |
name: iOS | |
uses: ./.github/workflows/build.yaml | |
with: | |
runs-on: macos-latest | |
target: ios | |
archive-name: melondsds_libretro-ios | |
info-dir: info | |
lib-ext: dylib | |
cmake-args: --toolchain ./cmake/toolchain/ios.toolchain.cmake -DPLATFORM=OS64 -DDEPLOYMENT_TARGET=14 | |
# Disabled OpenGL on iOS due to https://github.com/JesseTG/melonds-ds/issues/23 | |
tvos: | |
name: tvOS | |
uses: ./.github/workflows/build.yaml | |
with: | |
runs-on: macos-latest | |
target: tvos | |
archive-name: melondsds_libretro-tvos | |
info-dir: info | |
lib-ext: dylib | |
cmake-args: --toolchain ./cmake/toolchain/ios.toolchain.cmake -DPLATFORM=TVOS -DDEPLOYMENT_TARGET=14 | |
# Disabled OpenGL on tvOS due to https://github.com/JesseTG/melonds-ds/issues/23 | |
test-linux-x86_64: | |
name: Test Suite (Linux x86_64) | |
uses: ./.github/workflows/test.yaml | |
needs: [ linux-x86_64 ] | |
with: | |
archive-name: melondsds_libretro-linux-x86_64 | |
target: linux-x86_64 | |
runs-on: ubuntu-latest | |
secrets: | |
TESTFILE_REPO_TOKEN: ${{ secrets.TESTFILE_REPO_TOKEN }} | |
TESTFILE_REPO: ${{ secrets.TESTFILE_REPO }} | |
DSI_NAND_ARCHIVE: ${{ secrets.DSI_NAND_ARCHIVE }} | |
DSI_NAND: ${{ secrets.DSI_NAND }} | |
ARM7_BIOS: ${{ secrets.ARM7_BIOS }} | |
ARM9_BIOS: ${{ secrets.ARM9_BIOS }} | |
ARM7_DSI_BIOS: ${{ secrets.ARM7_DSI_BIOS }} | |
ARM9_DSI_BIOS: ${{ secrets.ARM9_DSI_BIOS }} | |
NDS_FIRMWARE: ${{ secrets.NDS_FIRMWARE }} | |
DSI_FIRMWARE: ${{ secrets.DSI_FIRMWARE }} | |
NDS_ROM: ${{ secrets.NDS_ROM }} | |
create-release: | |
name: Create Release | |
needs: [ windows, macos, linux-x86_64, linux-aarch64, android, ios, tvos, test-linux-x86_64 ] | |
if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check Out Source | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # To ensure we have all tags | |
- name: Get Latest Changelog Version | |
id: changelog | |
uses: release-flow/keep-a-changelog-action@v2 | |
with: | |
command: query | |
version: latest | |
- name: Get the Newest Tag | |
id: newest-tag | |
run: | | |
echo "version=`git tag --list "v[0-9]*.[0-9]*.[0-9]*" --sort=-v:refname | head -n1 | cut -c2-`" >> "$GITHUB_OUTPUT" | |
- name: Download Artifacts | |
if: "${{ steps.changelog.outputs.version != steps.newest-tag.outputs.version }}" | |
uses: actions/download-artifact@v3 | |
with: | |
path: artifact | |
- name: Zip Release Artifacts | |
if: "${{ steps.changelog.outputs.version != steps.newest-tag.outputs.version }}" | |
shell: bash | |
working-directory: artifact | |
run: | | |
for file in melondsds_libretro-*-Release; do | |
zip -r "${file}.zip" "$file" | |
done | |
- name: Upload .info File Artifact | |
if: "${{ steps.changelog.outputs.version != steps.newest-tag.outputs.version }}" | |
uses: actions/upload-artifact@v3 | |
with: | |
name: melondsds_libretro.info | |
path: artifact/melondsds_libretro-linux-x86_64-Release/cores/melondsds_libretro.info | |
- name: Create Release | |
if: "${{ steps.changelog.outputs.version != steps.newest-tag.outputs.version }}" | |
uses: softprops/action-gh-release@v1 | |
with: | |
token: ${{ secrets.RELEASE_TOKEN }} | |
tag_name: "v${{ steps.changelog.outputs.version }}" | |
body: "${{ steps.changelog.outputs.release-notes }}" | |
files: | | |
artifact/melondsds_libretro-win32-x86_64-Release.zip | |
artifact/melondsds_libretro-macos-universal-Release.zip | |
artifact/melondsds_libretro-linux-x86_64-Release.zip | |
artifact/melondsds_libretro-linux-aarch64-Release.zip | |
artifact/melondsds_libretro-android-Release.zip | |
artifact/melondsds_libretro-ios-Release.zip | |
artifact/melondsds_libretro-tvos-Release.zip | |
- name: Checkout libretro-super | |
if: "${{ steps.changelog.outputs.version != steps.newest-tag.outputs.version }}" | |
uses: actions/checkout@v3 | |
with: | |
repository: "${{ github.triggering_actor }}/libretro-super" | |
path: libretro-super | |
- name: Sync libretro-super with Upstream | |
if: "${{ steps.changelog.outputs.version != steps.newest-tag.outputs.version }}" | |
working-directory: libretro-super | |
env: | |
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} | |
run: | | |
git remote add upstream https://github.com/libretro/libretro-super.git | |
git pull upstream master | |
git push origin master | |
- name: Copy .info File | |
if: "${{ steps.changelog.outputs.version != steps.newest-tag.outputs.version }}" | |
run: cp -f "${{ github.workspace }}/artifact/melondsds_libretro-linux-x86_64-Release/cores/melondsds_libretro.info" libretro-super/dist/info | |
- name: Commit and Push | |
if: "${{ steps.changelog.outputs.version != steps.newest-tag.outputs.version }}" | |
working-directory: libretro-super | |
env: | |
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} | |
run: | | |
git add dist/info/melondsds_libretro.info | |
git commit -m "Add melondsds_libretro.info for melonDS DS release ${{ steps.changelog.outputs.version }}" | |
git push origin master | |
- name: Open Pull Request | |
if: "${{ steps.changelog.outputs.version != steps.newest-tag.outputs.version }}" | |
working-directory: libretro-super | |
env: | |
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} | |
run: | | |
gh pr create \ | |
--title "Add melondsds_libretro.info for release ${{ github.event.release.tag_name }}" \ | |
--fill \ | |
--base master \ | |
--repo ${{ github.actor }}:libretro-super |