forked from hazelcast/hazelcast
-
Notifications
You must be signed in to change notification settings - Fork 0
144 lines (129 loc) · 4.9 KB
/
build-artifact.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
133
134
135
136
137
138
139
140
141
142
143
144
name: Build and Dockerize
on:
workflow_call:
outputs:
HZ_IMG:
description: "The Hazelcast Docker image"
value: ${{ jobs.build.outputs.HZ_IMG }}
CL_IMG:
description: "The client Docker image"
value: ${{ jobs.build.outputs.CL_IMG }}
jobs:
build:
name: Build Jar's And Docker Images
runs-on: ubuntu-latest
env:
GAR_PROJECT_ID: hazelcast-33
GAR_REGION: us-east1
GAR_REPO: auto-discovery-test-suite
AWS_REGION: us-east-1
defaults:
run:
working-directory: aws-discovery-suite/terraform/test
outputs:
HZ_IMG: ${{ steps.get-hz-image-tag.outputs.HZ_IMG }}
CL_IMG: ${{ steps.get-cl-image-tag.outputs.CL_IMG }}
steps:
- name: Configure AWS Credentials
uses: aws-actions/[email protected]
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ env.AWS_REGION }}
- name: Get Secrets
uses: aws-actions/aws-secretsmanager-get-secrets@v1
with:
secret-ids: |
DEVOPS_GITHUB_TOKEN,CN/DEVOPS_GITHUB_TOKEN
GCP_SA_KEY,CN/GKE_SA_KEY
- name: Checkout Auto Discovery Test Suite
uses: actions/checkout@v4
with:
repository: hazelcast/auto-discovery-test-suite
token: ${{ env.DEVOPS_GITHUB_TOKEN }}
path: aws-discovery-suite
- name: Decide Which 'ref' To Checkout
id: decide-ref
run: |
if [[ "${{github.event_name}}" == "pull_request_target" ]]; then
echo "ref=refs/pull/${{ github.event.pull_request.number }}/merge" >> $GITHUB_OUTPUT
else
echo "ref=${{github.ref}}" >> $GITHUB_OUTPUT
fi
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{steps.decide-ref.outputs.ref}}
path: ${{steps.decide-ref.outputs.ref}}
- name: Setup JDK
uses: actions/setup-java@v3
with:
java-version: 17
architecture: x64
distribution: adopt
cache: 'maven'
- name: Setup Local Maven Cache
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Build hazelcast jar
working-directory: ${{steps.decide-ref.outputs.ref}}
run: |
HAZELCAST_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
echo "HAZELCAST_VERSION=${HAZELCAST_VERSION}" >> $GITHUB_ENV
./mvnw -T 4 -B -V -e clean install \
-Dfindbugs.skip \
-Dcheckstyle.skip \
-Dpmd.skip=true \
-Dspotbugs.skip \
-Denforcer.skip \
-Dmaven.javadoc.skip \
-DskipTests \
-Dlicense.skip=true \
-Drat.skip=true \
-Dspotless.check.skip=true \
-Dattribution.skip \
-Danimal.sniffer.skip=true \
-Dmaven.source.skip=true
cp hazelcast/target/hazelcast-*-SNAPSHOT.jar ${GITHUB_WORKSPACE}/aws-discovery-suite/terraform/tools/hazelcast.jar
- name: Build client jar
working-directory: aws-discovery-suite/terraform/tools/client
run: |
mvn versions:set-property -Dproperty=hazelcast.version -DnewVersion=$HAZELCAST_VERSION
mvn clean package
mv target/aws-discovery-client.jar aws-discovery-client.jar
- name: Upload hazelcast.jar
uses: actions/upload-artifact@v3
with:
name: hazelcast.jar
path: aws-discovery-suite/terraform/tools/hazelcast.jar
- name: Upload aws-discovery-client.jar
uses: actions/upload-artifact@v3
with:
name: aws-discovery-client.jar
path: aws-discovery-suite/terraform/tools/client/aws-discovery-client.jar
- name: Authenticate to GAR
uses: docker/login-action@v3
with:
registry: us-east1-docker.pkg.dev
username: _json_key
password: ${{ env.GCP_SA_KEY }}
- name: Build Hazelcast Image
id: get-hz-image-tag
working-directory: aws-discovery-suite/terraform/tools
run: |
HZ_IMG="${{ env.GAR_REGION }}-docker.pkg.dev/${{ env.GAR_PROJECT_ID }}/${{ env.GAR_REPO }}/$(uuidgen):3d"
echo "HZ_IMG=${HZ_IMG}" >> $GITHUB_OUTPUT
docker build -f Dockerfile -t ${HZ_IMG} .
docker push ${HZ_IMG}
- name: Build Client Image
id: get-cl-image-tag
working-directory: aws-discovery-suite/terraform/tools/client
run: |
CL_IMG="${{ env.GAR_REGION }}-docker.pkg.dev/${{ env.GAR_PROJECT_ID }}/${{ env.GAR_REPO }}/$(uuidgen):3d"
echo "CL_IMG=${CL_IMG}" >> $GITHUB_OUTPUT
docker build -f Dockerfile -t ${CL_IMG} .
docker push ${CL_IMG}