8
8
Build_Linux_X86_64 :
9
9
uses : timeplus-io/proton/.github/workflows/run_command.yml@develop
10
10
with :
11
- ec2-instance-type : c5.4xlarge
11
+ ec2-instance-type : c7i.8xlarge
12
12
ec2-image-id : ami-042a37e33a285c22b
13
13
submodules : ' recursive'
14
14
run_mode : ' start' # start ec2 on demand instance
30
30
rm cache.tar.gz
31
31
32
32
# compiling
33
- ./docker/packager/packager --package-type binary --docker-image-version clang-16 --build-type release --proton-build --enable-proton-local --cache ccache --ccache_dir $GITHUB_WORKSPACE/ccache --output-dir $GITHUB_WORKSPACE/output
33
+ ./docker/packager/packager --package-type binary --docker-image-version clang-19 --build-type release --proton-build --enable-proton-local --cache ccache --ccache_dir $GITHUB_WORKSPACE/ccache --output-dir $GITHUB_WORKSPACE/output
34
34
35
35
if [ ! -f "$GITHUB_WORKSPACE/output/proton" ]; then
36
36
echo "Compiling proton Failed"
75
75
Build_Linux_Arm64 :
76
76
uses : timeplus-io/proton/.github/workflows/run_command.yml@develop
77
77
with :
78
- ec2-instance-type : c6g.4xlarge
78
+ ec2-instance-type : c6g.8xlarge
79
79
ec2-image-id : ami-0f3dbc4cc9994fdee
80
80
submodules : ' recursive'
81
81
run_mode : ' start' # start ec2 on demand instance
97
97
rm cache-arm.tar.gz
98
98
99
99
# compiling
100
- ./docker/packager/packager --package-type binary --docker-image-version clang-16 --build-type release --proton-build --enable-proton-local --cache ccache --ccache_dir $GITHUB_WORKSPACE/ccache --output-dir $GITHUB_WORKSPACE/output
100
+ ./docker/packager/packager --package-type binary --docker-image-version clang-19 --build-type release --proton-build --enable-proton-local --cache ccache --ccache_dir $GITHUB_WORKSPACE/ccache --output-dir $GITHUB_WORKSPACE/output
101
101
102
102
# get proton tag
103
103
PROTON_TAG=`grep "SET(VERSION_DESCRIBE" $GITHUB_WORKSPACE/cmake/autogenerated_versions.txt | sed 's/^.*VERSION_DESCRIBE \(.*\)$/\1/' | sed 's/[) ].*//'`
@@ -190,7 +190,7 @@ jobs:
190
190
Build_Darwin_X86_64 :
191
191
uses : timeplus-io/proton/.github/workflows/run_command.yml@develop
192
192
with :
193
- ec2-instance-type : c5.4xlarge
193
+ ec2-instance-type : c7i.8xlarge
194
194
ec2-image-id : ami-042a37e33a285c22b
195
195
submodules : ' recursive'
196
196
run_mode : ' start' # start ec2 on demand instance
@@ -218,7 +218,7 @@ jobs:
218
218
echo "max_size = 100.0G" > $GITHUB_WORKSPACE/ccache/ccache.conf
219
219
220
220
# compiling
221
- ./docker/packager/packager --package-type binary --docker-image-version clang-16 --build-type release --proton-build --enable-proton-local --cache ccache --ccache_dir $GITHUB_WORKSPACE/ccache --output-dir $GITHUB_WORKSPACE/output --compiler clang-16 -darwin
221
+ ./docker/packager/packager --package-type binary --docker-image-version clang-19 --build-type release --proton-build --enable-proton-local --cache ccache --ccache_dir $GITHUB_WORKSPACE/ccache --output-dir $GITHUB_WORKSPACE/output --compiler clang-19 -darwin
222
222
223
223
if [ ! -f "$GITHUB_WORKSPACE/output/proton" ]; then
224
224
echo "Compiling proton Failed"
@@ -276,7 +276,7 @@ jobs:
276
276
mkdir $GITHUB_WORKSPACE/ccache
277
277
echo "max_size = 100.0G" > $GITHUB_WORKSPACE/ccache/ccache.conf
278
278
# compiling
279
- ./docker/packager/packager --package-type binary --docker-image-version clang-16 --build-type release --proton-build --enable-proton-local --cache ccache --ccache_dir $GITHUB_WORKSPACE/ccache --output-dir $GITHUB_WORKSPACE/output --compiler clang-16 -darwin-aarch64
279
+ ./docker/packager/packager --package-type binary --docker-image-version clang-19 --build-type release --proton-build --enable-proton-local --cache ccache --ccache_dir $GITHUB_WORKSPACE/ccache --output-dir $GITHUB_WORKSPACE/output --compiler clang-19 -darwin-aarch64
280
280
if [ ! -f "$GITHUB_WORKSPACE/output/proton" ]; then
281
281
echo "Compiling proton Failed"
282
282
exit 127
@@ -329,9 +329,9 @@ jobs:
329
329
- name : Create and Configure Build
330
330
run : |
331
331
mkdir -p ${{ env.build_directory }}
332
- export CC=$(brew --prefix llvm@17 )/bin/clang
333
- export CXX=$(brew --prefix llvm@17 )/bin/clang++
334
- export PATH=$(brew --prefix llvm@17 )/bin:$PATH
332
+ export CC=$(brew --prefix llvm@19 )/bin/clang
333
+ export CXX=$(brew --prefix llvm@19 )/bin/clang++
334
+ export PATH=$(brew --prefix llvm@19 )/bin:$PATH
335
335
cmake -B ${{ env.build_directory }} -G "Ninja" -DCMAKE_BUILD_TYPE=${{ env.build_type }} -DENABLE_TESTS=OFF -DENABLE_UTILS=OFF -DENABLE_EXAMPLES=OFF -DENABLE_PULSAR=OFF
336
336
337
337
# Compile the project using Ninja
@@ -343,7 +343,7 @@ jobs:
343
343
run : |
344
344
ORIGINAL_BINARY=${{ env.build_directory }}/programs/proton
345
345
STRIPPED_BINARY=${{ env.build_directory }}/programs/proton-${{ env.LATEST_TAG }}-Darwin-arm64
346
- /opt/homebrew/opt/llvm@17 /bin/llvm-strip $ORIGINAL_BINARY -o $STRIPPED_BINARY
346
+ /opt/homebrew/opt/llvm@19 /bin/llvm-strip $ORIGINAL_BINARY -o $STRIPPED_BINARY
347
347
348
348
# Set up AWS credentials for S3 upload
349
349
- name : Configure AWS credentials
@@ -353,11 +353,44 @@ jobs:
353
353
aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
354
354
aws-region : ${{ secrets.AWS_REGION }}
355
355
356
- # Upload the stripped binary to an AWS S3 bucket
356
+ # Upload the stripped binary to an AWS S3 bucket with improved retry
357
357
- name : Upload Artifact To S3
358
358
run : |
359
359
STRIPPED_BINARY=${{ env.build_directory }}/programs/proton-${{ env.LATEST_TAG }}-Darwin-arm64
360
- aws s3 cp --no-progress $STRIPPED_BINARY s3://tp-internal/proton/native_build_macOS/
360
+
361
+ # Advanced retry logic with exponential backoff
362
+ max_attempts=5
363
+ attempt=1
364
+ wait_time=15
365
+
366
+ while [ $attempt -le $max_attempts ]; do
367
+ echo "S3 upload attempt $attempt of $max_attempts"
368
+
369
+ # Using specific AWS CLI options to handle large file uploads more reliably
370
+ if aws s3 cp \
371
+ --no-progress \
372
+ --only-show-errors \
373
+ --cli-connect-timeout 30 \
374
+ --cli-read-timeout 600 \
375
+ "$STRIPPED_BINARY" \
376
+ "s3://tp-internal/proton/native_build_macOS/"; then
377
+ echo "Upload successful"
378
+ break
379
+ else
380
+ upload_status=$?
381
+ echo "Upload failed on attempt $attempt with exit code $upload_status"
382
+
383
+ if [ $attempt -eq $max_attempts ]; then
384
+ echo "All upload attempts failed"
385
+ exit 1
386
+ fi
387
+
388
+ echo "Retrying in $wait_time seconds..."
389
+ sleep $wait_time
390
+ wait_time=$((wait_time * 2)) # Exponential backoff
391
+ attempt=$((attempt + 1))
392
+ fi
393
+ done
361
394
362
395
# Print SHA256 Checksum
363
396
- name : Print SHA256 Checksum
0 commit comments