-
Notifications
You must be signed in to change notification settings - Fork 22
132 lines (113 loc) · 4.6 KB
/
publish-brew-package.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
name: Publish BREW package
on:
workflow_call:
inputs:
HZ_VERSION:
description: 'Version of Hazelcast to build the image for, this is the Maven version - e.g.: 5.0.2 or 5.1-SNAPSHOT'
required: true
type: string
HZ_DISTRIBUTION:
description: 'Distribution to be built: hazelcast or hazelcast-enterprise'
required: true
type: string
USE_TEST_REPO:
description: 'Use test repo for publishing'
required: true
type: string
PACKAGE_VERSION:
description: 'Version of the package e.g. 5.1.1, 5.1.1-1, defaults to HZ_VERSION'
type: string
env:
JFROG_USERNAME: ${{ secrets.JFROG_USERNAME }}
JFROG_TOKEN: ${{ secrets.JFROG_TOKEN }}
concurrency:
group: 'brew-${{ github.job }}-${{ inputs.HZ_VERSION }}-${{ inputs.HZ_DISTRIBUTION}}'
jobs:
homebrew:
runs-on: macos-latest
env:
HZ_VERSION: ${{ inputs.HZ_VERSION }}
PACKAGE_VERSION: ${{ inputs.PACKAGE_VERSION || inputs.HZ_VERSION }}
HZ_DISTRIBUTION: ${{ inputs.HZ_DISTRIBUTION }}
USE_TEST_REPO: ${{ inputs.USE_TEST_REPO }}
steps:
- name: Checkout hazelcast-packaging repo
uses: actions/checkout@v4
- name: Load env vars from .env file
run: cat .env >> $GITHUB_ENV
- name: Install up-to-date tools
run: |
brew install gnu-sed
brew install coreutils
PATH="$HOMEBREW_PREFIX/opt/gnu-sed/libexec/gnubin:$PATH"
sed --version
PATH="$HOMEBREW_PREFIX/opt/coreutils/libexec/gnubin:$PATH"
sha256sum --version
echo "PATH=$HOMEBREW_PREFIX/opt/coreutils/libexec/gnubin:$HOMEBREW_PREFIX/opt/gnu-sed/libexec/gnubin:$PATH" >> $GITHUB_ENV
- name: Setup JDK
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.JAVA_DISTRIBUTION }}
- name: Download the distribution tar.gz file
env:
HZ_SNAPSHOT_INTERNAL_PASSWORD: ${{ secrets.HZ_SNAPSHOT_INTERNAL_PASSWORD }}
HZ_SNAPSHOT_INTERNAL_USERNAME: ${{ secrets.HZ_SNAPSHOT_INTERNAL_USERNAME }}
run: |
. .github/workflows/build.functions.sh
DISTRIBUTION_URL=$(get_hz_dist_tar_gz "${HZ_VERSION}" "${HZ_DISTRIBUTION}")
if [[ "$(url_contains_password "$DISTRIBUTION_URL" "$HZ_SNAPSHOT_INTERNAL_PASSWORD")" == "yes" ]]; then
echo "Trying to expose a password-protected url of the distribution file, aborting!";
exit 1;
fi
curl --fail --silent --show-error --location "${DISTRIBUTION_URL}" --output distribution.tar.gz
echo "HZ_PACKAGE_URL=${DISTRIBUTION_URL}" >> $GITHUB_ENV
- name: Get homebrew repository
run: |
source ./common.sh
echo "BREW_GIT_REPO_NAME=${BREW_GIT_REPO_NAME}" >> $GITHUB_ENV
- name: Checkout homebrew-hz repo
uses: actions/checkout@v4
with:
repository: ${{ env.BREW_GIT_REPO_NAME }}
token: ${{ secrets.DEVOPS_SECRET }}
path: 'homebrew-hz'
- name: Change the artifact in homebrew-hz
run: |
./build-hazelcast-homebrew-package.sh
- name: Commit changes & Push to homebrew-hz repo
run: |
source common.sh
cd homebrew-hz
git config --global user.name "${GITHUB_ACTOR}"
git config --global user.email "${GITHUB_ACTOR}@users.noreply.github.com"
git add *.rb
if [[ `git status --porcelain --untracked-files=no` ]]; then
git commit -am "Hazelcast Homebrew Package ${{ env.PACKAGE_VERSION }} release"
git pull --rebase
git push
else
echo "No changes, this is probably a re-run."
fi
- name: Install Hazelcast from Homebrew
run: |
source ./common.sh
brew tap ${BREW_TAP_NAME}
brew install ${{ env.HZ_DISTRIBUTION}}@$BREW_PACKAGE_VERSION
- name: Run Hazelcast
env:
HZ_LICENSEKEY: ${{ secrets.HZ_LICENSEKEY }}
run: HAZELCAST_CONFIG="$(pwd)/config/integration-test-hazelcast.yaml" hz-start > hz.log 2>&1 &
- name: Check Hazelcast health
run: |
./check-hazelcast-health.sh "${{ env.HZ_DISTRIBUTION}}" "${{ env.HZ_VERSION}}"
- name: Uninstall Hazelcast from homebrew
run: |
source ./common.sh
brew uninstall ${{ env.HZ_DISTRIBUTION}}@$BREW_PACKAGE_VERSION
- name: Store logs as artifact
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: brew-${{ env.HZ_DISTRIBUTION}}-hz.log
path: hz.log