diff --git a/.github/workflows/electron.yml b/.github/workflows/electron.yml index b5731a5b..70fb3a8d 100644 --- a/.github/workflows/electron.yml +++ b/.github/workflows/electron.yml @@ -530,6 +530,51 @@ jobs: path: release/termix_macos_arm64_dmg.dmg retention-days: 30 + - name: Get version for Homebrew + id: homebrew-version + run: | + VERSION=$(node -p "require('./package.json').version") + echo "version=$VERSION" >> $GITHUB_OUTPUT + + - name: Generate Homebrew Cask + if: hashFiles('release/termix_macos_universal_dmg.dmg') != '' && (github.event.inputs.artifact_destination == 'file' || github.event.inputs.artifact_destination == 'release') + run: | + VERSION="${{ steps.homebrew-version.outputs.version }}" + DMG_PATH="release/termix_macos_universal_dmg.dmg" + + CHECKSUM=$(shasum -a 256 "$DMG_PATH" | awk '{print $1}') + + mkdir -p homebrew-generated + cp homebrew/termix.rb homebrew-generated/termix.rb + + sed -i '' "s/VERSION_PLACEHOLDER/$VERSION/g" homebrew-generated/termix.rb + sed -i '' "s/CHECKSUM_PLACEHOLDER/$CHECKSUM/g" homebrew-generated/termix.rb + sed -i '' "s|version \".*\"|version \"$VERSION\"|g" homebrew-generated/termix.rb + sed -i '' "s|sha256 \".*\"|sha256 \"$CHECKSUM\"|g" homebrew-generated/termix.rb + sed -i '' "s|release-[0-9.]*-tag|release-$VERSION-tag|g" homebrew-generated/termix.rb + + - name: Upload Homebrew Cask as artifact + uses: actions/upload-artifact@v4 + if: hashFiles('homebrew-generated/termix.rb') != '' && github.event.inputs.artifact_destination == 'file' + with: + name: homebrew-cask + path: homebrew-generated/termix.rb + retention-days: 30 + + - name: Upload Homebrew Cask to release + if: hashFiles('homebrew-generated/termix.rb') != '' && github.event.inputs.artifact_destination == 'release' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + VERSION="${{ steps.homebrew-version.outputs.version }}" + RELEASE_TAG="release-$VERSION-tag" + + gh release list --repo ${{ github.repository }} --limit 100 | grep -q "$RELEASE_TAG" || { + echo "Release $RELEASE_TAG not found" + exit 1 + } + + gh release upload "$RELEASE_TAG" homebrew-generated/termix.rb --repo ${{ github.repository }} --clobber - name: Clean up keychains if: always() diff --git a/electron-builder.json b/electron-builder.json index 218153e1..8137f73d 100644 --- a/electron-builder.json +++ b/electron-builder.json @@ -124,5 +124,6 @@ "ITSAppUsesNonExemptEncryption": false, "NSAppleEventsUsageDescription": "Termix needs access to control other applications for terminal operations." } - } + }, + "generateUpdatesFilesForAllChannels": true } diff --git a/homebrew/termix.rb b/homebrew/termix.rb new file mode 100644 index 00000000..6f6d0d86 --- /dev/null +++ b/homebrew/termix.rb @@ -0,0 +1,24 @@ +cask "termix" do + version "1.9.0" + sha256 "8fedd242b3cae1ebfd0c391a36f1c246a26ecac258b02478ee8dea2f33cd6d96" + + url "https://github.com/Termix-SSH/Termix/releases/download/release-#{version}-tag/termix_macos_universal_dmg.dmg" + name "Termix" + desc "Web-based server management platform with SSH terminal, tunneling, and file editing" + homepage "https://github.com/Termix-SSH/Termix" + + livecheck do + url :url + strategy :github_latest + end + + app "Termix.app" + + zap trash: [ + "~/Library/Application Support/termix", + "~/Library/Caches/com.karmaa.termix", + "~/Library/Caches/com.karmaa.termix.ShipIt", + "~/Library/Preferences/com.karmaa.termix.plist", + "~/Library/Saved Application State/com.karmaa.termix.savedState", + ] +end diff --git a/scripts/enable-ssl.sh b/src/backend/scripts/enable-ssl.sh similarity index 100% rename from scripts/enable-ssl.sh rename to src/backend/scripts/enable-ssl.sh diff --git a/scripts/setup-ssl.sh b/src/backend/scripts/setup-ssl.sh similarity index 100% rename from scripts/setup-ssl.sh rename to src/backend/scripts/setup-ssl.sh