name: Electron app BETA on: push: tags: - 'v[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+' jobs: build: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [macos-14, windows-2022, ubuntu-22.04] # os: [macOS-10.15] steps: - name: "Install python 3.11 (Linux, Windows)" uses: actions/setup-python@v5 with: python-version: 3.11 if: matrix.os.setup_python - name: Install python 3.11 (MacOS) if: matrix.os.type == 'macos' id: mac_python env: ARCH: ${{ matrix.os.arch }} run: | rm -f /usr/local/bin/2to3-3.11 rm -f /usr/local/bin/idle3.11 rm -f /usr/local/bin/pydoc3.11 rm -f /usr/local/bin/python3.11 rm -f /usr/local/bin/python3.11-config brew install python@3.11 if [ "$ARCH" = "arm64" ]; then # Add Python 3.11 to PATH for arm64 echo "/opt/homebrew/opt/python@3.11/libexec/bin" >> $GITHUB_PATH export PATH="/opt/homebrew/opt/python@3.11/libexec/bin:$PATH" export PYTHON_PATH="/opt/homebrew/opt/python@3.11/libexec/bin/python3" echo "python_path=$PYTHON_PATH" >> $GITHUB_OUTPUT else # Add Python 3.11 to PATH for other architectures echo "/usr/local/opt/python@3.11/libexec/bin" >> $GITHUB_PATH export PATH="/usr/local/opt/python@3.11/libexec/bin:$PATH" export PYTHON_PATH="/usr/local/opt/python@3.11/libexec/bin/python3" echo "python_path=$PYTHON_PATH" >> $GITHUB_OUTPUT fi - name: Context env: GITHUB_CONTEXT: ${{ toJson(github) }} run: echo "$GITHUB_CONTEXT" - uses: actions/checkout@v2 with: fetch-depth: 1 - name: Use Node.js 22.x uses: actions/setup-node@v1 with: node-version: 22.x - name: adjustPackageJson run: | node adjustPackageJson --premium - name: setUpdaterChannel beta run: | node setUpdaterChannel beta - name: yarn set timeout run: | yarn config set network-timeout 100000 - name: yarn install run: | yarn install - name: setCurrentVersion run: | yarn setCurrentVersion - name: printSecrets run: | yarn printSecrets env: GIST_UPLOAD_SECRET : ${{secrets.GIST_UPLOAD_SECRET}} - name: fillPackagedPlugins run: | yarn fillPackagedPlugins - name: Install Snapcraft if: matrix.os == 'ubuntu-22.04' uses: samuelmeuli/action-snapcraft@v1 - name: Publish run: | yarn run build:app env: GH_TOKEN: ${{ secrets.GH_TOKEN }} # token for electron publish WIN_CSC_LINK: ${{ secrets.WINCERT_2025 }} WIN_CSC_KEY_PASSWORD: ${{ secrets.WINCERT_2025_PASSWORD }} # WIN_CSC_LINK: ${{ secrets.WINCERT_CERTIFICATE }} # WIN_CSC_KEY_PASSWORD: ${{ secrets.WINCERT_PASSWORD }} CSC_LINK: ${{ secrets.APPLECERT_CERTIFICATE }} CSC_KEY_PASSWORD: ${{ secrets.APPLECERT_PASSWORD }} APPLE_ID: ${{ secrets.APPLE_ID }} APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} - name: publishSnap if: matrix.os == 'ubuntu-22.04' run: | snapcraft upload --release=beta app/dist/*.snap env: SNAPCRAFT_STORE_CREDENTIALS: ${{secrets.SNAPCRAFT_LOGIN}} - name: Copy artifacts run: | mkdir artifacts cp app/dist/*.deb artifacts/dbgate-beta.deb || true cp app/dist/*x86*.AppImage artifacts/dbgate-beta.AppImage || true cp app/dist/*arm64*.AppImage artifacts/dbgate-beta-arm64.AppImage || true cp app/dist/*armv7l*.AppImage artifacts/dbgate-beta-armv7l.AppImage || true cp app/dist/*win*.exe artifacts/dbgate-beta.exe || true cp app/dist/*win_x64.zip artifacts/dbgate-windows-beta.zip || true cp app/dist/*win_arm64.zip artifacts/dbgate-windows-beta-arm64.zip || true cp app/dist/*-mac_x64.dmg artifacts/dbgate-beta.dmg || true cp app/dist/*-mac_arm64.dmg artifacts/dbgate-beta-arm64.dmg || true mv app/dist/*.exe artifacts/ || true mv app/dist/*.zip artifacts/ || true mv app/dist/*.tar.gz artifacts/ || true mv app/dist/*.AppImage artifacts/ || true mv app/dist/*.deb artifacts/ || true mv app/dist/*.snap artifacts/ || true mv app/dist/*.dmg artifacts/ || true mv app/dist/*.blockmap artifacts/ || true mv app/dist/*.yml artifacts/ || true rm artifacts/builder-debug.yml - name: Upload artifacts uses: actions/upload-artifact@v4 with: name: ${{ matrix.os }} path: artifacts - name: Release uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/') with: files: 'artifacts/**' prerelease: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Print content of notarization-error.log if: failure() && matrix.os == 'macos-14' run: | find . -type f -name "notarization-error.log" -exec echo "=== Start of {} ===" \; -exec cat {} \; -exec echo "=== End of {} ===" \;