homebrew-keyweave/.github/workflows/release.yml

87 lines
No EOL
3.7 KiB
YAML

name: Release
on:
workflow_dispatch:
inputs:
version:
required: true
sha256sums:
required: true
permissions:
contents: write
jobs:
release:
runs-on: ubuntu-latest
env:
CI_COMMIT_MESSAGE: 'feat: added formula for v${{ inputs.version }}'
CI_COMMIT_AUTHOR: github-actions[bot]
steps:
- uses: actions/checkout@v4
- name: Generate Homebrew Formula
id: generate-formula
run: |
# Create a temporary formula file
TMP_FORMULA="$(mktemp)"
# Define the formula content with GitHub expressions
cat <<EOF > "${TMP_FORMULA}"
class Keyweave < Formula
desc "Fetches secrets from Azure Key Vault and weaves them into a convenient .env file"
homepage "https://github.com/bartvdbraak/keyweave"
license "GPLv3"
version "${{ inputs.version }}"
option "with-gnu-libc", "Install glibc binary"
option "with-musl-libc", "Install musl binary (default)"
if OS.mac?
if Hardware::CPU.arm?
url "https://github.com/bartvdbraak/keyweave/releases/download/v${{ inputs.version }}/keyweave-aarch64-apple-darwin.tar.xz"
sha256 "${{ fromJson(inputs.sha256sums)['keyweave-aarch64-apple-darwin.tar.xz'] }}"
else
url "https://github.com/bartvdbraak/keyweave/releases/download/v${{ inputs.version }}/keyweave-x86_64-apple-darwin.tar.xz"
sha256 "${{ fromJson(inputs.sha256sums)['keyweave-x86_64-apple-darwin.tar.xz'] }}"
end
elsif OS.linux?
if Hardware::CPU.arm?
if Hardware::CPU.is_32_bit?
url "https://github.com/bartvdbraak/keyweave/releases/download/v${{ inputs.version }}/keyweave-armv7-unknown-linux-gnueabihf.tar.xz"
sha256 "${{ fromJson(inputs.sha256sums)['keyweave-armv7-unknown-linux-gnueabihf.tar.xz'] }}"
else
url "https://github.com/bartvdbraak/keyweave/releases/download/v${{ inputs.version }}/keyweave-aarch64-unknown-linux-gnu.tar.xz"
sha256 "${{ fromJson(inputs.sha256sums)['keyweave-aarch64-unknown-linux-gnu.tar.xz'] }}"
end
else
if build.with?("with-gnu-libc")
url "https://github.com/bartvdbraak/keyweave/releases/download/v${{ inputs.version }}/keyweave-x86_64-unknown-linux-gnu.tar.xz"
sha256 "${{ fromJson(inputs.sha256sums)['keyweave-x86_64-unknown-linux-gnu.tar.xz'] }}"
elsif build.with?("with-musl-libc")
url "https://github.com/bartvdbraak/keyweave/releases/download/v${{ inputs.version }}/keyweave-x86_64-unknown-linux-musl.tar.xz"
sha256 "${{ fromJson(inputs.sha256sums)['keyweave-x86_64-unknown-linux-musl.tar.xz'] }}"
else
url "https://github.com/bartvdbraak/keyweave/releases/download/v${{ inputs.version }}/keyweave-x86_64-unknown-linux-musl.tar.xz"
sha256 "${{ fromJson(inputs.sha256sums)['keyweave-x86_64-unknown-linux-musl.tar.xz'] }}"
end
end
end
def install
bin.install "keyweave"
end
end
EOF
# Append the generated formula to the target file
cat "${TMP_FORMULA}" > "Formula/keyweave.rb"
# Clean up the temporary formula file
rm "${TMP_FORMULA}"
- name: Commit Homebrew Formula
run: |
git config --global user.name "${{ env.CI_COMMIT_AUTHOR }}"
git config --global user.email "bartvdbraak@users.noreply.github.com"
git commit -a -m "${{ env.CI_COMMIT_MESSAGE }}"
git push