Skip to content

chore(ci): Using flatpak-github-actions #86

chore(ci): Using flatpak-github-actions

chore(ci): Using flatpak-github-actions #86

Workflow file for this run

name: CI/CD
on: [push, pull_request]
jobs:
build-linux:
strategy:
matrix:
RUNNER:
- ubuntu-22.04
- ubuntu-24.04
runs-on: ${{matrix.RUNNER}}
env:
CXXFLAGS: -Wall -Wextra -Wno-deprecated-declarations -Werror -Wno-stringop-overflow
steps:
- uses: actions/checkout@v4
with:
submodules: true
lfs: true
- name: Install prerequisites
run: sudo apt-get update -y && sudo apt-get install -y
libasound2-dev
libfmt-dev
libfreetype-dev
libsdl2-dev
libspdlog-dev
nlohmann-json3-dev
- name: Configure CMake
run: cmake
-S ${{github.workspace}}
-B ${{github.workspace}}/build
-D CMAKE_BUILD_TYPE=Release
-D MC_COMMIT_SHA=${{github.sha}}
-D MC_BUILD_NUMBER=${{github.run_number}}
-D CPACK_GENERATOR=DEB
-D CPACK_SYSTEM_NAME=$(lsb_release --codename --short)
- name: Build
run: cmake --build ${{github.workspace}}/build --target midiconn -j $(nproc)
- name: Create DEB package
run: cd ${{github.workspace}}/build && cpack -C Release
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: linux
path: |
${{github.workspace}}/build/midiconn
${{github.workspace}}/build/*.deb
build-flatpak:
runs-on: ubuntu-latest
container:
image: bilelmoussaoui/flatpak-github-actions:freedesktop-23.08
options: --privileged
steps:
- uses: actions/checkout@v4
with:
submodules: true
lfs: true
- name: Validate metainfo
run: appstream-util validate
data/packaging/xyz.safeworlds.midiconn.metainfo.xml
- name: Build flatpak
uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with:
manifest-path: ${{github.workspace}}/data/packaging/xyz.safeworlds.midiconn.yml
cache-key: flatpak-builder-${{ github.sha }}
build-windows:
runs-on: windows-latest
env:
vcpkg-prereqs: nlohmann-json:x64-windows spdlog:x64-windows sdl2:x64-windows freetype[core]:x64-windows zlib:x64-windows
steps:
- uses: actions/checkout@v4
with:
submodules: true
lfs: true
- name: Restore vcpkg prerequisites cache
id: restore-cache-vcpkg
uses: actions/cache/restore@v4
with:
path: C:\vcpkg
key: ${{env.vcpkg-prereqs}}
- name: Install prerequisites
if: ${{ steps.restore-cache-vcpkg.outputs.cache-hit != 'true' }}
run: vcpkg install ${{env.vcpkg-prereqs}}
- name: Save vcpkg prerequisites cache
if: ${{ steps.restore-cache-vcpkg.outputs.cache-hit != 'true' }}
uses: actions/cache/save@v4
with:
path: C:\vcpkg
key: ${{env.vcpkg-prereqs}}
- name: Configure CMake
run: cmake
-B ${{github.workspace}}/build
-D MC_COMMIT_SHA=${{github.sha}}
-D MC_BUILD_NUMBER=${{github.run_number}}
-D MC_CHECK_FOR_UPDATES=ON
-D CMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake
-D CMAKE_CXX_FLAGS="/await /EHsc"
-T host=x64
-A x64
- name: Build
run: cmake --build ${{github.workspace}}/build --target midiconn --config Release
- name: Build installer
run: cd ${{github.workspace}}\build; cpack -C Release
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: windows
path: |
${{github.workspace}}\build\Release\*.exe
${{github.workspace}}\build\Release\*.dll
${{github.workspace}}\build\*.msi
release:
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
needs:
- build-linux
- build-windows
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
- name: Create GitHub release
uses: softprops/action-gh-release@v2
with:
files: |
${{github.workspace}}/artifact/*.deb
${{github.workspace}}/artifact/*.msi
- name: Push artifacts to itch.io
shell: bash
run: |
wget https://broth.itch.ovh/butler/linux-amd64/LATEST/archive/default -O butler.zip
unzip butler.zip
export BUTLER_API_KEY=${{ secrets.BUTLER_API_KEY }}
./butler push ${{github.workspace}}/artifact/*.msi mfeproject/midiconn:windows-msi --userversion $GITHUB_REF_NAME
./butler push ${{github.workspace}}/artifact/*.deb mfeproject/midiconn:ubuntu2204-deb --userversion $GITHUB_REF_NAME