name: Release on: push: tags: - '**' jobs: build: name: Build runs-on: ${{ matrix.os }} timeout-minutes: 60 strategy: fail-fast: false matrix: include: - name: Windows os: windows-latest - name: Linux os: ubuntu-latest - name: macOS os: macos-latest steps: - uses: actions/checkout@v4 with: submodules: recursive - name: Install Linux dependencies if: matrix.name == 'Linux' run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ ninja-build clang g++ \ libasound2-dev libjack-jackd2-dev ladspa-sdk libcurl4-openssl-dev \ libfreetype-dev libfontconfig1-dev \ libx11-dev libxcomposite-dev libxcursor-dev libxext-dev \ libxinerama-dev libxrandr-dev libxrender-dev \ libwebkit2gtk-4.1-dev libglu1-mesa-dev mesa-common-dev shell: bash - name: Install Inno Setup (Windows) if: matrix.name == 'Windows' run: choco install innosetup --no-progress -y shell: bash - name: Build installer run: ./Installer/build.sh shell: bash env: APPLICATION: ${{ secrets.APPLICATION }} INSTALLER: ${{ secrets.INSTALLER }} APPLE_USER: ${{ secrets.APPLE_USER }} APPLE_PASS: ${{ secrets.APPLE_PASS }} AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }} - name: Upload Artifact uses: actions/upload-artifact@v4 if: always() with: name: Binaries ${{ matrix.name }} path: bin/* retention-days: 30 release: name: Release needs: build runs-on: ubuntu-latest timeout-minutes: 30 permissions: contents: write steps: - uses: actions/checkout@v4 - name: Download Artifacts uses: actions/download-artifact@v4 - name: Create Release run: ./release.sh shell: bash env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} APIKEY: ${{ secrets.APIKEY }}