diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..7f1ef32 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,62 @@ +name: Build and Release + +on: + push: + tags: + - 'v*' + +jobs: + release: + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [macos-latest, windows-latest, ubuntu-latest] + + steps: + - name: Check out Git repository + uses: actions/checkout@v4 + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: 18 + + - name: Install Dependencies + run: npm install + + # MacOS Build + - name: Build MacOS + if: matrix.os == 'macos-latest' + run: npm run build:mac + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # Windows Build + - name: Build Windows + if: matrix.os == 'windows-latest' + run: npm run build:win + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # Linux Build + - name: Build Linux + if: matrix.os == 'ubuntu-latest' + run: | + sudo apt-get update + sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf + npm run build:linux + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # Upload artifacts + - name: Upload artifacts + uses: softprops/action-gh-release@v1 + with: + files: | + dist/*.dmg + dist/*.exe + dist/*.deb + dist/*.AppImage + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/package.json b/package.json index 87810fa..2af3f01 100644 --- a/package.json +++ b/package.json @@ -84,6 +84,11 @@ "build": { "appId": "com.alger.music", "productName": "AlgerMusicPlayer", + "publish": [{ + "provider": "github", + "owner": "algerkong", + "repo": "AlgerMusicPlayer" + }], "mac": { "icon": "resources/icon.icns", "target": [