feat: support darwin arm64 (#10239)
This commit is contained in:
parent
c5315a31ec
commit
082c7a552b
|
|
@ -206,7 +206,7 @@ jobs:
|
|||
- package-build:
|
||||
type: windows
|
||||
nightly: << parameters.nightly >>
|
||||
darwin-package:
|
||||
darwin-amd64-package:
|
||||
parameters:
|
||||
nightly:
|
||||
type: boolean
|
||||
|
|
@ -214,7 +214,17 @@ jobs:
|
|||
executor: go-1_17
|
||||
steps:
|
||||
- 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 >>
|
||||
i386-package:
|
||||
parameters:
|
||||
|
|
@ -453,7 +463,10 @@ workflows:
|
|||
- 'windows-package':
|
||||
requires:
|
||||
- 'test-go-windows'
|
||||
- 'darwin-package':
|
||||
- 'darwin-amd64-package':
|
||||
requires:
|
||||
- 'test-go-mac'
|
||||
- 'darwin-arm64-package':
|
||||
requires:
|
||||
- 'test-go-mac'
|
||||
- 'i386-package':
|
||||
|
|
@ -509,7 +522,8 @@ workflows:
|
|||
- 'amd64-package'
|
||||
- 'mipsel-package'
|
||||
- 'mips-package'
|
||||
- 'darwin-package'
|
||||
- 'darwin-amd64-package'
|
||||
- 'darwin-arm64-package'
|
||||
- 'windows-package'
|
||||
- 'static-package'
|
||||
- 'arm64-package'
|
||||
|
|
@ -562,8 +576,13 @@ workflows:
|
|||
nightly: true
|
||||
requires:
|
||||
- 'test-go-windows'
|
||||
- 'darwin-package':
|
||||
name: 'darwin-package-nightly'
|
||||
- 'darwin-amd64-package':
|
||||
name: 'darwin-amd64-package-nightly'
|
||||
nightly: true
|
||||
requires:
|
||||
- 'test-go-mac'
|
||||
- 'darwin-arm64-package':
|
||||
name: 'darwin-arm64-package-nightly'
|
||||
nightly: true
|
||||
requires:
|
||||
- 'test-go-mac'
|
||||
|
|
@ -626,7 +645,8 @@ workflows:
|
|||
- 'amd64-package-nightly'
|
||||
- 'mipsel-package-nightly'
|
||||
- 'mips-package-nightly'
|
||||
- 'darwin-package-nightly'
|
||||
- 'darwin-amd64-package-nightly'
|
||||
- 'darwin-arm64-package-nightly'
|
||||
- 'windows-package-nightly'
|
||||
- 'static-package-nightly'
|
||||
- 'arm64-package-nightly'
|
||||
|
|
|
|||
18
Makefile
18
Makefile
|
|
@ -284,12 +284,17 @@ windows += windows_i386.zip windows_amd64.zip
|
|||
.PHONY: windows
|
||||
windows:
|
||||
@ echo $(windows)
|
||||
darwin += darwin_amd64.tar.gz
|
||||
.PHONY: darwin
|
||||
darwin:
|
||||
@ echo $(darwin)
|
||||
darwin-amd64 += darwin_amd64.tar.gz
|
||||
.PHONY: darwin-amd64
|
||||
darwin-amd64:
|
||||
@ 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
|
||||
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 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 GOARCH := 386
|
||||
|
||||
|
|
|
|||
|
|
@ -5,15 +5,16 @@ These builds are generated from the master branch each night:
|
|||
|
||||
| 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) |
|
||||
| [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) |
|
||||
| [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) | |
|
||||
| [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) | |
|
||||
| [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) | |
|
||||
| [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) | |
|
||||
| [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) | |
|
||||
| [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) | |
|
||||
| [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) | |
|
||||
| [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) | [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_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_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) | [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_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_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_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_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_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) | |
|
||||
|
|
|
|||
|
|
@ -4,69 +4,76 @@ sudo security import MacCertificate.p12 -k /Library/Keychains/System.keychain -P
|
|||
base64 -D -o AppleSigningAuthorityCertificate.cer <<< $AppleSigningAuthorityCertificate
|
||||
sudo security import AppleSigningAuthorityCertificate.cer -k '/Library/Keychains/System.keychain' -A
|
||||
|
||||
# Extract the built mac binary and sign it.
|
||||
cd dist
|
||||
tarFile=$(find . -name "*darwin_amd64.tar*")
|
||||
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
|
||||
amdFile=$(find . -name "*darwin_amd64.tar*")
|
||||
armFile=$(find . -name "*darwin_arm64.tar*")
|
||||
macFiles=(${amdFile} ${armFile})
|
||||
|
||||
# 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.
|
||||
codesign -s "Developer ID Application: InfluxData Inc. (M7DN9H35QT)" --timestamp --options=runtime ../scripts/telegraf_entry_mac
|
||||
codesign -v ../scripts/telegraf_entry_mac
|
||||
for tarFile in ${macFiles[@]};
|
||||
do
|
||||
# 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.
|
||||
mkdir Telegraf
|
||||
cd Telegraf
|
||||
mkdir Contents
|
||||
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
|
||||
# Reset back out to the main directory.
|
||||
cd
|
||||
cd project/dist
|
||||
extractedFolder=$(find . -name "*telegraf-*" -type d)
|
||||
|
||||
# Sign the entire .app bundle, and wrap it in a DMG.
|
||||
codesign -s "Developer ID Application: InfluxData Inc. (M7DN9H35QT)" --timestamp --options=runtime --deep --force Telegraf.app
|
||||
hdiutil create -size 500m -volname Telegraf -srcfolder Telegraf.app "$baseName".dmg
|
||||
codesign -s "Developer ID Application: InfluxData Inc. (M7DN9H35QT)" --timestamp --options=runtime "$baseName".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 ../scripts/telegraf_entry_mac
|
||||
codesign -v ../scripts/telegraf_entry_mac
|
||||
|
||||
# Send the DMG to be notarized.
|
||||
uuid=$(xcrun altool --notarize-app --primary-bundle-id "com.influxdata.telegraf" --username "$AppleUsername" --password "$ApplePassword" --file "$baseName".dmg | awk '/RequestUUID/ { print $NF; }')
|
||||
echo $uuid
|
||||
if [[ $uuid == "" ]]; then
|
||||
echo "Could not upload for notarization."
|
||||
exit 1
|
||||
fi
|
||||
# Create the .app bundle.
|
||||
mkdir Telegraf
|
||||
cd Telegraf
|
||||
mkdir Contents
|
||||
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
|
||||
|
||||
# Wait until the status returns something other than 'in progress'.
|
||||
request_status="in progress"
|
||||
while [[ "$request_status" == "in progress" ]]; do
|
||||
sleep 10
|
||||
request_status=$(xcrun altool --notarization-info $uuid --username "$AppleUsername" --password "$ApplePassword" 2>&1 | awk -F ': ' '/Status:/ { print $2; }' )
|
||||
done
|
||||
# Sign the entire .app bundle, and wrap it in a DMG.
|
||||
codesign -s "Developer ID Application: InfluxData Inc. (M7DN9H35QT)" --timestamp --options=runtime --deep --force Telegraf.app
|
||||
hdiutil create -size 500m -volname Telegraf -srcfolder Telegraf.app "$baseName".dmg
|
||||
codesign -s "Developer ID Application: InfluxData Inc. (M7DN9H35QT)" --timestamp --options=runtime "$baseName".dmg
|
||||
|
||||
if [[ $request_status != "success" ]]; then
|
||||
echo "Failed to notarize."
|
||||
exit 1
|
||||
fi
|
||||
# Send the DMG to be notarized.
|
||||
uuid=$(xcrun altool --notarize-app --primary-bundle-id "com.influxdata.telegraf" --username "$AppleUsername" --password "$ApplePassword" --file "$baseName".dmg | awk '/RequestUUID/ { print $NF; }')
|
||||
echo $uuid
|
||||
if [[ $uuid == "" ]]; then
|
||||
echo "Could not upload for notarization."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Attach the notarization to the DMG.
|
||||
xcrun stapler staple "$baseName".dmg
|
||||
rm -rf Telegraf.app
|
||||
rm -rf $extractedFolder
|
||||
ls
|
||||
# Wait until the status returns something other than 'in progress'.
|
||||
request_status="in progress"
|
||||
while [[ "$request_status" == "in progress" ]]; do
|
||||
sleep 10
|
||||
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