mirror of
https://github.com/nicklockwood/SwiftFormat.git
synced 2026-05-17 10:30:35 +00:00
74a534976f
* Add AArch64 variant to Artifact Bundle * Use Docker to build executable * Update x64 Linux build * Share build dependencies between architectures
49 lines
1.6 KiB
Bash
Executable File
49 lines
1.6 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
# By default, parses the current version from `Sources/SwiftFormat.swift`.
|
|
# Can be overridden by passing in custom version number as argument, e.g.
|
|
# `./Scripts/spm-artifact-bundle.sh VERSION_NUMBER`.
|
|
VERSION=${1:-$(./Scripts/get-version.sh)}
|
|
MAC_EXECUTABLE=${2:-CommandLineTool/swiftformat}
|
|
LINUX_EXECUTABLE=${3:-CommandLineTool/swiftformat_linux}
|
|
LINUX_AARCH64_EXECUTABLE=${4:-CommandLineTool/swiftformat_linux_aarch64}
|
|
|
|
ARTIFACT_BUNDLE=swiftformat.artifactbundle
|
|
INFO_TEMPLATE=Scripts/spm-artifact-bundle-info.template
|
|
MAC_BINARY_OUTPUT_DIR=$ARTIFACT_BUNDLE/swiftformat-$VERSION-macos/bin
|
|
LINUX_BINARY_OUTPUT_DIR=$ARTIFACT_BUNDLE/swiftformat-$VERSION-linux-gnu/bin
|
|
LINUX_AARCH64_BINARY_OUTPUT_DIR=$ARTIFACT_BUNDLE/swiftformat-$VERSION-linux-gnu/bin
|
|
|
|
rm -rf swiftformat.artifactbundle
|
|
rm -rf swiftformat.artifactbundle.zip
|
|
|
|
mkdir $ARTIFACT_BUNDLE
|
|
|
|
# Copy license into bundle
|
|
cp LICENSE.md $ARTIFACT_BUNDLE
|
|
|
|
# Create bundle info.json from template, replacing version
|
|
sed 's/__VERSION__/'"${VERSION}"'/g' $INFO_TEMPLATE > "${ARTIFACT_BUNDLE}/info.json"
|
|
|
|
# Copy macOS SwiftFormat binary into bundle
|
|
chmod +x $MAC_EXECUTABLE
|
|
mkdir -p $MAC_BINARY_OUTPUT_DIR
|
|
cp $MAC_EXECUTABLE $MAC_BINARY_OUTPUT_DIR
|
|
|
|
# Copy Linux SwiftFormat binary into bundle
|
|
chmod +x $LINUX_EXECUTABLE
|
|
mkdir -p $LINUX_BINARY_OUTPUT_DIR
|
|
cp $LINUX_EXECUTABLE $LINUX_BINARY_OUTPUT_DIR
|
|
|
|
# Copy Linux AArch64 SwiftFormat binary into bundle
|
|
chmod +x $LINUX_AARCH64_EXECUTABLE
|
|
mkdir -p $LINUX_AARCH64_BINARY_OUTPUT_DIR
|
|
cp $LINUX_AARCH64_EXECUTABLE $LINUX_AARCH64_BINARY_OUTPUT_DIR
|
|
|
|
# Create ZIP using 7z
|
|
7z a -tzip -mx=9 "${ARTIFACT_BUNDLE}.zip" "$ARTIFACT_BUNDLE"
|
|
|
|
rm -rf $ARTIFACT_BUNDLE
|