feat: support darwin arm64 (#10239)
This commit is contained in:
parent
c5315a31ec
commit
082c7a552b
|
|
@ -206,7 +206,7 @@ jobs:
|
||||||
- package-build:
|
- package-build:
|
||||||
type: windows
|
type: windows
|
||||||
nightly: << parameters.nightly >>
|
nightly: << parameters.nightly >>
|
||||||
darwin-package:
|
darwin-amd64-package:
|
||||||
parameters:
|
parameters:
|
||||||
nightly:
|
nightly:
|
||||||
type: boolean
|
type: boolean
|
||||||
|
|
@ -214,7 +214,17 @@ jobs:
|
||||||
executor: go-1_17
|
executor: go-1_17
|
||||||
steps:
|
steps:
|
||||||
- package-build:
|
- package-build:
|
||||||
type: darwin
|
type: darwin-amd64
|
||||||
|
nightly: << parameters.nightly >>
|
||||||
|
darwin-arm64-package:
|
||||||
|
parameters:
|
||||||
|
nightly:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
executor: go-1_17
|
||||||
|
steps:
|
||||||
|
- package-build:
|
||||||
|
type: darwin-arm64
|
||||||
nightly: << parameters.nightly >>
|
nightly: << parameters.nightly >>
|
||||||
i386-package:
|
i386-package:
|
||||||
parameters:
|
parameters:
|
||||||
|
|
@ -453,7 +463,10 @@ workflows:
|
||||||
- 'windows-package':
|
- 'windows-package':
|
||||||
requires:
|
requires:
|
||||||
- 'test-go-windows'
|
- 'test-go-windows'
|
||||||
- 'darwin-package':
|
- 'darwin-amd64-package':
|
||||||
|
requires:
|
||||||
|
- 'test-go-mac'
|
||||||
|
- 'darwin-arm64-package':
|
||||||
requires:
|
requires:
|
||||||
- 'test-go-mac'
|
- 'test-go-mac'
|
||||||
- 'i386-package':
|
- 'i386-package':
|
||||||
|
|
@ -509,7 +522,8 @@ workflows:
|
||||||
- 'amd64-package'
|
- 'amd64-package'
|
||||||
- 'mipsel-package'
|
- 'mipsel-package'
|
||||||
- 'mips-package'
|
- 'mips-package'
|
||||||
- 'darwin-package'
|
- 'darwin-amd64-package'
|
||||||
|
- 'darwin-arm64-package'
|
||||||
- 'windows-package'
|
- 'windows-package'
|
||||||
- 'static-package'
|
- 'static-package'
|
||||||
- 'arm64-package'
|
- 'arm64-package'
|
||||||
|
|
@ -562,8 +576,13 @@ workflows:
|
||||||
nightly: true
|
nightly: true
|
||||||
requires:
|
requires:
|
||||||
- 'test-go-windows'
|
- 'test-go-windows'
|
||||||
- 'darwin-package':
|
- 'darwin-amd64-package':
|
||||||
name: 'darwin-package-nightly'
|
name: 'darwin-amd64-package-nightly'
|
||||||
|
nightly: true
|
||||||
|
requires:
|
||||||
|
- 'test-go-mac'
|
||||||
|
- 'darwin-arm64-package':
|
||||||
|
name: 'darwin-arm64-package-nightly'
|
||||||
nightly: true
|
nightly: true
|
||||||
requires:
|
requires:
|
||||||
- 'test-go-mac'
|
- 'test-go-mac'
|
||||||
|
|
@ -626,7 +645,8 @@ workflows:
|
||||||
- 'amd64-package-nightly'
|
- 'amd64-package-nightly'
|
||||||
- 'mipsel-package-nightly'
|
- 'mipsel-package-nightly'
|
||||||
- 'mips-package-nightly'
|
- 'mips-package-nightly'
|
||||||
- 'darwin-package-nightly'
|
- 'darwin-amd64-package-nightly'
|
||||||
|
- 'darwin-arm64-package-nightly'
|
||||||
- 'windows-package-nightly'
|
- 'windows-package-nightly'
|
||||||
- 'static-package-nightly'
|
- 'static-package-nightly'
|
||||||
- 'arm64-package-nightly'
|
- 'arm64-package-nightly'
|
||||||
|
|
|
||||||
18
Makefile
18
Makefile
|
|
@ -284,12 +284,17 @@ windows += windows_i386.zip windows_amd64.zip
|
||||||
.PHONY: windows
|
.PHONY: windows
|
||||||
windows:
|
windows:
|
||||||
@ echo $(windows)
|
@ echo $(windows)
|
||||||
darwin += darwin_amd64.tar.gz
|
darwin-amd64 += darwin_amd64.tar.gz
|
||||||
.PHONY: darwin
|
.PHONY: darwin-amd64
|
||||||
darwin:
|
darwin-amd64:
|
||||||
@ echo $(darwin)
|
@ echo $(darwin-amd64)
|
||||||
|
|
||||||
include_packages := $(mips) $(mipsel) $(arm64) $(amd64) $(static) $(armel) $(armhf) $(s390x) $(ppc64le) $(i386) $(windows) $(darwin)
|
darwin-arm64 += darwin_arm64.tar.gz
|
||||||
|
.PHONY: darwin-arm64
|
||||||
|
darwin-arm64:
|
||||||
|
@ echo $(darwin-arm64)
|
||||||
|
|
||||||
|
include_packages := $(mips) $(mipsel) $(arm64) $(amd64) $(static) $(armel) $(armhf) $(s390x) $(ppc64le) $(i386) $(windows) $(darwin-amd64) $(darwin-arm64)
|
||||||
|
|
||||||
.PHONY: package
|
.PHONY: package
|
||||||
package: $(include_packages)
|
package: $(include_packages)
|
||||||
|
|
@ -401,6 +406,9 @@ windows_amd64.zip: export GOARCH := amd64
|
||||||
darwin_amd64.tar.gz: export GOOS := darwin
|
darwin_amd64.tar.gz: export GOOS := darwin
|
||||||
darwin_amd64.tar.gz: export GOARCH := amd64
|
darwin_amd64.tar.gz: export GOARCH := amd64
|
||||||
|
|
||||||
|
darwin_arm64.tar.gz: export GOOS := darwin
|
||||||
|
darwin_arm64.tar.gz: export GOARCH := arm64
|
||||||
|
|
||||||
windows_i386.zip: export GOOS := windows
|
windows_i386.zip: export GOOS := windows
|
||||||
windows_i386.zip: export GOARCH := 386
|
windows_i386.zip: export GOARCH := 386
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,15 +5,16 @@ These builds are generated from the master branch each night:
|
||||||
|
|
||||||
| DEB | RPM | TAR GZ | ZIP |
|
| DEB | RPM | TAR GZ | ZIP |
|
||||||
| --------------- | --------------- | ------------------------------| --- |
|
| --------------- | --------------- | ------------------------------| --- |
|
||||||
| [amd64.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_amd64.deb) | [aarch64.rpm](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly.aarch64.rpm) | [darwin_amd64.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_darwin_amd64.tar.gz) | [windows_amd64.zip](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_windows_amd64.zip) |
|
| [amd64.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_amd64.deb) | [aarch64.rpm](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly.aarch64.rpm) | [darwin_amd64.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_darwin_amd64.tar.gz) | [windows_amd64.zip](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_windows_amd64.zip) |
|
||||||
| [arm64.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_arm64.deb) | [armel.rpm](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly.armel.rpm) | [freebsd_amd64.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_freebsd_amd64.tar.gz) | [windows_i386.zip](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_windows_i386.zip) |
|
| [arm64.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_arm64.deb) | [armel.rpm](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly.armel.rpm) | [darwin_arm64.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_darwin_arm64.tar.gz) | [windows_i386.zip](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_windows_i386.zip) |
|
||||||
| [armel.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_armel.deb) | [armv6hl.rpm](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly.armv6hl.rpm) | [freebsd_armv7.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_freebsd_armv7.tar.gz) | |
|
| [armel.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_armel.deb) | [armv6hl.rpm](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly.armv6hl.rpm) | [freebsd_amd64.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_freebsd_amd64.tar.gz) | |
|
||||||
| [armhf.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_armhf.deb) | [i386.rpm](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly.i386.rpm) | [freebsd_i386.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_freebsd_i386.tar.gz) | |
|
| [armhf.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_armhf.deb) | [i386.rpm](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly.i386.rpm) | [freebsd_armv7.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_freebsd_armv7.tar.gz) | |
|
||||||
| [i386.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_i386.deb) | [ppc64le.rpm](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly.ppc64le.rpm) | [linux_amd64.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_amd64.tar.gz) | |
|
| [i386.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_i386.deb) | [ppc64le.rpm](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly.ppc64le.rpm) | [freebsd_i386.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_freebsd_i386.tar.gz) | |
|
||||||
| [mips.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_mips.deb) | [s390x.rpm](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly.s390x.rpm) | [linux_arm64.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_arm64.tar.gz) | |
|
| [mips.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_mips.deb) | [s390x.rpm](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly.s390x.rpm) | [linux_amd64.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_amd64.tar.gz) | |
|
||||||
| [mipsel.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_mipsel.deb) | [x86_64.rpm](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly.x86_64.rpm) | [linux_armel.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_armel.tar.gz) | |
|
| [mipsel.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_mipsel.deb) | [x86_64.rpm](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly.x86_64.rpm) | [linux_arm64.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_arm64.tar.gz) | |
|
||||||
| [ppc64el.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_ppc64el.deb) | | [linux_armhf.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_armhf.tar.gz) | |
|
| [ppc64el.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_ppc64el.deb) | | [linux_armel.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_armel.tar.gz) | |
|
||||||
| [s390x.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_s390x.deb) | | [linux_i386.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_i386.tar.gz) | |
|
| [s390x.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_s390x.deb) | | [linux_armhf.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_armhf.tar.gz) | |
|
||||||
|
| | | [linux_i386.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_i386.tar.gz) | |
|
||||||
| | | [linux_mips.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_mips.tar.gz) | |
|
| | | [linux_mips.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_mips.tar.gz) | |
|
||||||
| | | [linux_mipsel.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_mipsel.tar.gz) | |
|
| | | [linux_mipsel.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_mipsel.tar.gz) | |
|
||||||
| | | [linux_ppc64le.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_ppc64le.tar.gz) | |
|
| | | [linux_ppc64le.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_ppc64le.tar.gz) | |
|
||||||
|
|
|
||||||
|
|
@ -4,69 +4,76 @@ sudo security import MacCertificate.p12 -k /Library/Keychains/System.keychain -P
|
||||||
base64 -D -o AppleSigningAuthorityCertificate.cer <<< $AppleSigningAuthorityCertificate
|
base64 -D -o AppleSigningAuthorityCertificate.cer <<< $AppleSigningAuthorityCertificate
|
||||||
sudo security import AppleSigningAuthorityCertificate.cer -k '/Library/Keychains/System.keychain' -A
|
sudo security import AppleSigningAuthorityCertificate.cer -k '/Library/Keychains/System.keychain' -A
|
||||||
|
|
||||||
# Extract the built mac binary and sign it.
|
|
||||||
cd dist
|
cd dist
|
||||||
tarFile=$(find . -name "*darwin_amd64.tar*")
|
amdFile=$(find . -name "*darwin_amd64.tar*")
|
||||||
tar -xzvf $tarFile
|
armFile=$(find . -name "*darwin_arm64.tar*")
|
||||||
baseName=$(basename $tarFile .tar.gz)
|
macFiles=(${amdFile} ${armFile})
|
||||||
cd $(find . -name "*telegraf-*" -type d)
|
|
||||||
cd usr/bin
|
|
||||||
codesign -s "Developer ID Application: InfluxData Inc. (M7DN9H35QT)" --timestamp --options=runtime telegraf
|
|
||||||
codesign -v telegraf
|
|
||||||
|
|
||||||
# Reset back out to the main directory.
|
|
||||||
cd
|
|
||||||
cd project/dist
|
|
||||||
extractedFolder=$(find . -name "*telegraf-*" -type d)
|
|
||||||
|
|
||||||
# Sign the 'telegraf entry' script, which is required to open Telegraf upon opening the .app bundle.
|
for tarFile in ${macFiles[@]};
|
||||||
codesign -s "Developer ID Application: InfluxData Inc. (M7DN9H35QT)" --timestamp --options=runtime ../scripts/telegraf_entry_mac
|
do
|
||||||
codesign -v ../scripts/telegraf_entry_mac
|
# Extract the built mac binary and sign it.
|
||||||
|
tar -xzvf $tarFile
|
||||||
|
baseName=$(basename $tarFile .tar.gz)
|
||||||
|
cd $(find . -name "*telegraf-*" -type d)
|
||||||
|
cd usr/bin
|
||||||
|
codesign -s "Developer ID Application: InfluxData Inc. (M7DN9H35QT)" --timestamp --options=runtime telegraf
|
||||||
|
codesign -v telegraf
|
||||||
|
|
||||||
# Create the .app bundle.
|
# Reset back out to the main directory.
|
||||||
mkdir Telegraf
|
cd
|
||||||
cd Telegraf
|
cd project/dist
|
||||||
mkdir Contents
|
extractedFolder=$(find . -name "*telegraf-*" -type d)
|
||||||
cd Contents
|
|
||||||
mkdir MacOS
|
|
||||||
mkdir Resources
|
|
||||||
cd ../..
|
|
||||||
cp ../info.plist Telegraf/Contents
|
|
||||||
cp -R "$extractedFolder"/ Telegraf/Contents/Resources
|
|
||||||
cp ../scripts/telegraf_entry_mac Telegraf/Contents/MacOS
|
|
||||||
cp ../assets/icon.icns Telegraf/Contents/Resources
|
|
||||||
chmod +x Telegraf/Contents/MacOS/telegraf_entry_mac
|
|
||||||
mv Telegraf Telegraf.app
|
|
||||||
|
|
||||||
# Sign the entire .app bundle, and wrap it in a DMG.
|
# Sign the 'telegraf entry' script, which is required to open Telegraf upon opening the .app bundle.
|
||||||
codesign -s "Developer ID Application: InfluxData Inc. (M7DN9H35QT)" --timestamp --options=runtime --deep --force Telegraf.app
|
codesign -s "Developer ID Application: InfluxData Inc. (M7DN9H35QT)" --timestamp --options=runtime ../scripts/telegraf_entry_mac
|
||||||
hdiutil create -size 500m -volname Telegraf -srcfolder Telegraf.app "$baseName".dmg
|
codesign -v ../scripts/telegraf_entry_mac
|
||||||
codesign -s "Developer ID Application: InfluxData Inc. (M7DN9H35QT)" --timestamp --options=runtime "$baseName".dmg
|
|
||||||
|
|
||||||
# Send the DMG to be notarized.
|
# Create the .app bundle.
|
||||||
uuid=$(xcrun altool --notarize-app --primary-bundle-id "com.influxdata.telegraf" --username "$AppleUsername" --password "$ApplePassword" --file "$baseName".dmg | awk '/RequestUUID/ { print $NF; }')
|
mkdir Telegraf
|
||||||
echo $uuid
|
cd Telegraf
|
||||||
if [[ $uuid == "" ]]; then
|
mkdir Contents
|
||||||
echo "Could not upload for notarization."
|
cd Contents
|
||||||
exit 1
|
mkdir MacOS
|
||||||
fi
|
mkdir Resources
|
||||||
|
cd ../..
|
||||||
|
cp ../info.plist Telegraf/Contents
|
||||||
|
cp -R "$extractedFolder"/ Telegraf/Contents/Resources
|
||||||
|
cp ../scripts/telegraf_entry_mac Telegraf/Contents/MacOS
|
||||||
|
cp ../assets/icon.icns Telegraf/Contents/Resources
|
||||||
|
chmod +x Telegraf/Contents/MacOS/telegraf_entry_mac
|
||||||
|
mv Telegraf Telegraf.app
|
||||||
|
|
||||||
# Wait until the status returns something other than 'in progress'.
|
# Sign the entire .app bundle, and wrap it in a DMG.
|
||||||
request_status="in progress"
|
codesign -s "Developer ID Application: InfluxData Inc. (M7DN9H35QT)" --timestamp --options=runtime --deep --force Telegraf.app
|
||||||
while [[ "$request_status" == "in progress" ]]; do
|
hdiutil create -size 500m -volname Telegraf -srcfolder Telegraf.app "$baseName".dmg
|
||||||
sleep 10
|
codesign -s "Developer ID Application: InfluxData Inc. (M7DN9H35QT)" --timestamp --options=runtime "$baseName".dmg
|
||||||
request_status=$(xcrun altool --notarization-info $uuid --username "$AppleUsername" --password "$ApplePassword" 2>&1 | awk -F ': ' '/Status:/ { print $2; }' )
|
|
||||||
done
|
|
||||||
|
|
||||||
if [[ $request_status != "success" ]]; then
|
# Send the DMG to be notarized.
|
||||||
echo "Failed to notarize."
|
uuid=$(xcrun altool --notarize-app --primary-bundle-id "com.influxdata.telegraf" --username "$AppleUsername" --password "$ApplePassword" --file "$baseName".dmg | awk '/RequestUUID/ { print $NF; }')
|
||||||
exit 1
|
echo $uuid
|
||||||
fi
|
if [[ $uuid == "" ]]; then
|
||||||
|
echo "Could not upload for notarization."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Attach the notarization to the DMG.
|
# Wait until the status returns something other than 'in progress'.
|
||||||
xcrun stapler staple "$baseName".dmg
|
request_status="in progress"
|
||||||
rm -rf Telegraf.app
|
while [[ "$request_status" == "in progress" ]]; do
|
||||||
rm -rf $extractedFolder
|
sleep 10
|
||||||
ls
|
request_status=$(xcrun altool --notarization-info $uuid --username "$AppleUsername" --password "$ApplePassword" 2>&1 | awk -F ': ' '/Status:/ { print $2; }' )
|
||||||
|
done
|
||||||
|
|
||||||
echo "Signed and notarized!"
|
if [[ $request_status != "success" ]]; then
|
||||||
|
echo "Failed to notarize."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Attach the notarization to the DMG.
|
||||||
|
xcrun stapler staple "$baseName".dmg
|
||||||
|
rm -rf Telegraf.app
|
||||||
|
rm -rf $extractedFolder
|
||||||
|
ls
|
||||||
|
|
||||||
|
echo "$tarFile Signed and notarized!"
|
||||||
|
done
|
||||||
Loading…
Reference in New Issue