mirror of
https://github.com/kopia/kopia.git
synced 2026-05-24 14:44:47 -04:00
ci: build and publish Homebrew package
This commit is contained in:
3
.github/workflows/make.yml
vendored
3
.github/workflows/make.yml
vendored
@@ -190,4 +190,5 @@ jobs:
|
||||
GITHUB_TOKEN: ${{secrets.GH_TOKEN}}
|
||||
- name: Publish Other Packages
|
||||
run: make publish-packages
|
||||
|
||||
env:
|
||||
GITHUB_TOKEN: ${{secrets.GH_TOKEN}}
|
||||
|
||||
1
Makefile
1
Makefile
@@ -351,6 +351,7 @@ publish-packages:
|
||||
ifeq ($(REPO_OWNER)/$(GOOS)/$(GOARCH)/$(IS_PULL_REQUEST),kopia/linux/amd64/false)
|
||||
$(CURDIR)/tools/apt-publish.sh $(CURDIR)/dist
|
||||
$(CURDIR)/tools/rpm-publish.sh $(CURDIR)/dist
|
||||
$(CURDIR)/tools/homebrew-publish.sh $(CURDIR)/dist $(KOPIA_VERSION_NO_PREFIX)
|
||||
@echo $(DOCKERHUB_TOKEN) | docker login --username $(DOCKERHUB_USERNAME) --password-stdin
|
||||
$(CURDIR)/tools/docker-publish.sh $(CURDIR)/dist_binaries
|
||||
else
|
||||
|
||||
40
tools/homebrew-publish.sh
Executable file
40
tools/homebrew-publish.sh
Executable file
@@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
dist_dir=$1
|
||||
ver=$2
|
||||
|
||||
if [ "$CI_TAG" == "" ]; then
|
||||
echo Not publishing Homebrew package on non-tagged releases.
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$GITHUB_TOKEN" == "" ]; then
|
||||
echo Not publishing Homebrew package because GITHUB_TOKEN is not set.
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$REPO_OWNER/$GITHUB_REF" != "kopia/refs/heads/master" ]; then
|
||||
echo Not publishing Homebrew package on $REPO_OWNER/$GITHUB_REF
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo Publishing Homebrew version $ver from $dist_dir...
|
||||
|
||||
HASH_MAC_AMD64=$(sha256sum $dist_dir/kopia-$ver-macOS-x64.tar.gz | cut -f 1 -d " ")
|
||||
HASH_MAC_ARM64=$(sha256sum $dist_dir/kopia-$ver-macOS-arm64.tar.gz | cut -f 1 -d " ")
|
||||
HASH_LINUX_AMD64=$(sha256sum $dist_dir/kopia-$ver-linux-x64.tar.gz | cut -f 1 -d " ")
|
||||
HASH_LINUX_ARM64=$(sha256sum $dist_dir/kopia-$ver-linux-arm64.tar.gz | cut -f 1 -d " ")
|
||||
HASH_LINUX_ARM=$(sha256sum $dist_dir/kopia-$ver-linux-arm.tar.gz | cut -f 1 -d " ")
|
||||
tmpdir=$(mktemp -d)
|
||||
git clone https://$GITHUB_TOKEN@github.com/kopia/homebrew-kopia.git $tmpdir
|
||||
|
||||
cat tools/kopia-homebrew.rs.template | \
|
||||
sed "s/VERSION/$ver/g" | \
|
||||
sed "s/HASH_MAC_AMD64/$HASH_MAC_AMD64/g" | \
|
||||
sed "s/HASH_MAC_ARM64/$HASH_MAC_ARM64/g" | \
|
||||
sed "s/HASH_LINUX_AMD64/$HASH_LINUX_AMD64/g" | \
|
||||
sed "s/HASH_LINUX_ARM64/$HASH_LINUX_ARM64/g" |
|
||||
sed "s/HASH_LINUX_ARM/$HASH_LINUX_ARM/g" > $tmpdir/kopia.rb
|
||||
|
||||
(cd $tmpdir && git add kopia.rb && git -c "user.name=Kopia Builder" -c "user.email=builder@kopia.io" commit -m "Brew formula update for kopia version $ver" && git push)
|
||||
rm -rf "$tmpdir"
|
||||
34
tools/kopia-homebrew.rs.template
Normal file
34
tools/kopia-homebrew.rs.template
Normal file
@@ -0,0 +1,34 @@
|
||||
# typed: false
|
||||
# frozen_string_literal: true
|
||||
|
||||
class Kopia < Formula
|
||||
desc "Fast and secure open source backup."
|
||||
homepage "https://kopia.io"
|
||||
version "VERSION"
|
||||
bottle :unneeded
|
||||
|
||||
if OS.mac? && Hardware::CPU.intel?
|
||||
url "https://github.com/kopia/kopia/releases/download/vVERSION/kopia-VERSION-macOS-x64.tar.gz"
|
||||
sha256 "HASH_MAC_AMD64"
|
||||
end
|
||||
if OS.mac? && Hardware::CPU.arm?
|
||||
url "https://github.com/kopia/kopia/releases/download/vVERSION/kopia-VERSION-macOS-arm64.tar.gz"
|
||||
sha256 "HASH_MAC_ARM64"
|
||||
end
|
||||
if OS.linux? && Hardware::CPU.intel?
|
||||
url "https://github.com/kopia/kopia/releases/download/vVERSION/kopia-VERSION-linux-x64.tar.gz"
|
||||
sha256 "HASH_LINUX_AMD64"
|
||||
end
|
||||
if OS.linux? && Hardware::CPU.arm? && !Hardware::CPU.is_64_bit?
|
||||
url "https://github.com/kopia/kopia/releases/download/vVERSION/kopia-VERSION-linux-arm.tar.gz"
|
||||
sha256 "HASH_LINUX_ARM"
|
||||
end
|
||||
if OS.linux? && Hardware::CPU.arm? && Hardware::CPU.is_64_bit?
|
||||
url "https://github.com/kopia/kopia/releases/download/vVERSION/kopia-VERSION-linux-arm64.tar.gz"
|
||||
sha256 "HASH_LINUX_ARM64"
|
||||
end
|
||||
|
||||
def install
|
||||
bin.install "kopia"
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user