From 25e09497619f9a2160c9ceee2da8da78fe42e057 Mon Sep 17 00:00:00 2001 From: Volodymyr Stoiko Date: Sun, 25 Feb 2024 01:06:15 +0200 Subject: [PATCH] Template homebrew formulae (#1502) --- .github/static/kubeshark.rb.tmpl | 46 ++++++++++++++++++++++++++++ .github/workflows/release.yml | 52 ++++++++++++++------------------ 2 files changed, 68 insertions(+), 30 deletions(-) create mode 100644 .github/static/kubeshark.rb.tmpl diff --git a/.github/static/kubeshark.rb.tmpl b/.github/static/kubeshark.rb.tmpl new file mode 100644 index 000000000..c4d4e6b9f --- /dev/null +++ b/.github/static/kubeshark.rb.tmpl @@ -0,0 +1,46 @@ +# typed: false +# frozen_string_literal: true + +class Kubeshark < Formula + desc "" + homepage "https://github.com/kubeshark/kubeshark" + version "${CLEAN_VERSION}" + + on_macos do + if Hardware::CPU.arm? + url "https://github.com/kubeshark/kubeshark/releases/download/${FULL_VERSION}/kubeshark_darwin_arm64" + sha256 "${DARWIN_ARM64_SHA256}" + + def install + bin.install "kubeshark_darwin_arm64" => "kubeshark" + end + end + if Hardware::CPU.intel? + url "https://github.com/kubeshark/kubeshark/releases/download/${FULL_VERSION}/kubeshark_darwin_amd64" + sha256 "${DARWIN_AMD64_SHA256}" + + def install + bin.install "kubeshark_darwin_amd64" => "kubeshark" + end + end + end + + on_linux do + if Hardware::CPU.intel? + url "https://github.com/kubeshark/kubeshark/releases/download/${FULL_VERSION}/kubeshark_linux_amd64" + sha256 "${LINUX_AMD64_SHA256}" + + def install + bin.install "kubeshark_linux_amd64" => "kubeshark" + end + end + if Hardware::CPU.arm? && Hardware::CPU.is_64_bit? + url "https://github.com/kubeshark/kubeshark/releases/download/${FULL_VERSION}/kubeshark_linux_arm64" + sha256 "${LINUX_ARM64_SHA256}" + + def install + bin.install "kubeshark_linux_arm64" => "kubeshark" + end + end + end +end diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 58603318f..a3663dff8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -50,41 +50,33 @@ jobs: prerelease: true bodyFile: 'bin/README.md' - brew-tap: - name: Create Homebrew formulae - runs-on: ubuntu-latest - needs: [release] - steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 + repository: kubeshark/homebrew-kubeshark + ssh-key: ${{ secrets.HOMEBREW_SSH_KEY }} + path: homebrew-kubeshark - - name: Version - id: version + - name: Generate Homebrew formulae shell: bash run: | - { - echo "tag=${GITHUB_REF#refs/*/}" - echo "build_timestamp=$(date +%s)" - echo "branch=${GITHUB_REF#refs/heads/}" - } >> "$GITHUB_OUTPUT" + export FULL_VERSION=${{ steps.version.outputs.tag }} + export CLEAN_VERSION=$(echo $FULL_VERSION | sed 's/^v//') + export DARWIN_AMD64_SHA256=$(shasum -a 256 bin/kubeshark_darwin_amd64 | awk '{print $1}') + export DARWIN_ARM64_SHA256=$(shasum -a 256 bin/kubeshark_darwin_arm64 | awk '{print $1}') + export LINUX_AMD64_SHA256=$(shasum -a 256 bin/kubeshark_linux_amd64 | awk '{print $1}') + export LINUX_ARM64_SHA256=$(shasum -a 256 bin/kubeshark_linux_arm64 | awk '{print $1}') + envsubst < .github/static/kubeshark.rb.tmpl > homebrew-kubeshark/kubeshark.rb - - name: Fetch all tags - run: git fetch --force --tags + cat homebrew-kubeshark/kubeshark.rb - - name: Set up Go - uses: actions/setup-go@v4 - with: - go-version-file: 'go.mod' - - - name: Run GoReleaser - uses: goreleaser/goreleaser-action@v4 - with: - distribution: goreleaser - version: ${{ env.GITHUB_REF_NAME }} - args: release --clean - env: - GITHUB_TOKEN: ${{ secrets.HOMEBREW_TOKEN }} - VER: ${{ steps.version.outputs.tag }} - BUILD_TIMESTAMP: ${{ steps.version.outputs.build_timestamp }} + - name: Commit and push Homebrew formulae + working-directory: homebrew-kubeshark + run: | + git config --global user.email "bot@kubeshark.io" + git config --global user.name "Kubeshark Bot" + git add kubeshark.rb + git commit -m "Release ${{ steps.version.outputs.tag }}" + git push + \ No newline at end of file