diff --git a/.github/workflows/build.sh b/.github/workflows/build.sh new file mode 100755 index 0000000..146580d --- /dev/null +++ b/.github/workflows/build.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +if [ -f /etc/os-release ]; then + . /etc/os-release + OS=$NAME +elif [ -f /etc/lsb-release ]; then + . /etc/lsb-release + OS=$DISTRIB_ID +else + OS=$(uname -s) +fi + +case $OS in + "Ubuntu") + echo Ubuntu + apt-get update + apt-get install -y jq curl p7zip-full nodejs npm unzip + npm install -g @electron/asar + ./build_deb.sh + + mkdir dist + mv deb/*.deb dist + ;; + "Arch Linux") + echo "Arch Linux" + pacman -Syy --noconfirm + pacman -S --noconfirm git sudo base-devel p7zip nodejs jq npm electron libpulse + # fix access + mkdir /.npm + chown -R 65534:65534 "/.npm" + # fix "asar: command not found" + npm install -g @electron/asar + # fix makepkg from non-root + mkdir /home/build + chgrp nobody /home/build + chmod g+ws /home/build + setfacl -m u::rwx,g::rwx /home/build + setfacl -d --set u::rwx,g::rwx,o::- /home/build + chown nobody . + sudo -u nobody makepkg --log + + mkdir dist + mv *.pkg.tar.zst dist + ;; + "NixOS") + # TODO + ;; + *) + echo "Operating system is not recognized." + ;; +esac \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..690ec7b --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,32 @@ +name: Build + +on: + pull_request: + branches: + - '*' + push: + branches: + - 'main' + + +jobs: + build: + strategy: + matrix: + container: + - ubuntu:22.04 + - archlinux:latest + runs-on: ubuntu-latest + container: + image: ${{ matrix.container }} + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Build + run: ./.github/workflows/build.sh + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + path: ./dist/* \ No newline at end of file diff --git a/build_deb.sh b/build_deb.sh old mode 100644 new mode 100755