name: Build & Release on: push: tags: - "v*" jobs: build-linux-win: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: submodules: true - uses: actions/setup-node@v4 with: node-version: "20" - name: Install dependencies run: npm ci - name: Build backend + frontend + electron run: npm run build:all - name: Install Wine for Windows cross-compilation run: | dpkg --add-architecture i386 apt-get update apt-get install -y --no-install-recommends wine64 wine32 - name: Build Linux AppImage run: npx electron-builder --linux env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Build Windows Installer run: npx electron-builder --win env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload to Gitea Release uses: actions/upload-artifact@v4 with: name: installers path: | release/*.exe release/*.AppImage release/*.yml - name: Create Gitea Release run: | TAG="${GITHUB_REF#refs/tags/}" for file in release/*.exe release/*.AppImage release/latest*.yml; do [ -f "$file" ] || continue curl -X POST \ -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \ -F "attachment=@${file}" \ "${{ github.server_url }}/api/v1/repos/${{ github.repository }}/releases/tags/${TAG}/assets" done env: GITEA_TOKEN: ${{ secrets.RELEASE_TOKEN }}