name: Build Linux on: push: branches: [main] pull_request: branches: [main] jobs: build_x64: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 22 - run: npm install working-directory: simpliplay - run: npx electron-builder --linux --x64 working-directory: simpliplay - uses: actions/upload-artifact@v4 with: name: linux-x64-snap path: simpliplay/dist/*.snap - uses: actions/upload-artifact@v4 with: name: linux-x64-appimage path: simpliplay/dist/*.AppImage build_arm64: runs-on: ubuntu-24.04-arm env: SNAP_DESTRUCTIVE_MODE: "true" steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 22 - run: npm install working-directory: simpliplay - run: sudo snap install snapcraft --classic - run: npx electron-builder --dir --arm64 --linux working-directory: simpliplay - name: Create snapcraft.yaml run: | cat > simpliplay/dist/snapcraft.yaml <<'EOF' name: simpliplay base: core24 version: '2.0.2' summary: SimpliPlay - Media playback accessible anywhere, anytime. description: | SimpliPlay is a modern Electron-based media player supporting various formats. grade: stable confinement: strict environment: LD_LIBRARY_PATH: $SNAP/usr/lib:$SNAP/lib:$SNAP/usr/local/lib apps: simpliplay: command: SimpliPlay --no-sandbox plugs: - desktop - x11 - wayland - audio-playback - home - removable-media parts: liboss: plugin: autotools source: https://www.dropbox.com/scl/fi/etmheu10vg4kt5kb24ud4/oss-v4.2-build2020-src-gpl.tar.bz2?rlkey=wabpszkdgrvpdc4enccfbkf4k&st=ct62oegu&dl=1 build-packages: - build-essential - gcc - make - libtool - automake - linux-headers-generic stage: - usr/lib/libOSSlib.so simpliplay: plugin: dump source: ./linux-arm64-unpacked stage-packages: - libnss3 - libasound2 - libx11-xcb1 - libxcomposite1 - libxcursor1 - libxdamage1 - libxrandr2 - libgtk-3-0 - libllvm19 - libdrm-amdgpu1 - libdrm-radeon1 - mesa-libgallium - libgbm1 - libglapi-mesa - libsensors5 - libwayland-server0 - libxcb-dri2-0 - libxcb-dri3-0 - libxcb-present0 - libxcb-randr0 - libxcb-sync1 - libxcb-xfixes0 - libxshmfence1 after: - liboss EOF - name: Install build dependencies run: sudo apt-get update && sudo apt-get install -y autoconf automake autopoint build-essential gcc libtool linux-headers-generic make tar - name: Build snap package run: snapcraft --destructive-mode --output=simpliplay-arm64.snap working-directory: simpliplay/dist/ - uses: actions/upload-artifact@v4 with: name: linux-arm64-snap path: simpliplay/dist/simpliplay-arm64.snap - run: npx electron-builder --linux AppImage --arm64 working-directory: simpliplay - uses: actions/upload-artifact@v4 with: name: linux-arm64-appimage path: simpliplay/dist/*.AppImage