Skip to content
This repository was archived by the owner on Jul 1, 2023. It is now read-only.

Commit e4f8618

Browse files
committed
Add GitHub workflow for building+installing into toolchain via CMake.
Add GitHub Actions workflow for: - Downloading and installing a swift.org/download macOS development snapshot - Building tensorflow/swift-apis via CMake - Installing tensorflow/swift-apis into the toolchain via CMake - Repackaging the toolchain into a .pkg - Publishing the toolchain .pkg artifact This allows users to download standard swift.org/download toolchains with TensorFlow and X10 installed.
1 parent eebf3c7 commit e4f8618

File tree

1 file changed

+83
-0
lines changed

1 file changed

+83
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
name: macOS (CMake toolchain)
2+
3+
on:
4+
pull_request:
5+
branches: [ main ]
6+
7+
jobs:
8+
build:
9+
runs-on: macos-latest
10+
11+
env:
12+
# Hardcoded date selecting the latest toolchain from https://swift.org/download/#snapshots.
13+
# Update this to build with a newer toolchain.
14+
toolchain-date: 2021-01-04
15+
16+
steps:
17+
- uses: actions/checkout@v2
18+
19+
- name: Set environment variables
20+
run: |
21+
TOOLCHAIN_DATE=${{ env.toolchain-date }}
22+
TOOLCHAIN_NAME=swift-DEVELOPMENT-SNAPSHOT-${TOOLCHAIN_DATE}-a
23+
echo "TOOLCHAIN_DATE=${TOOLCHAIN_DATE}" >> $GITHUB_ENV
24+
echo "TOOLCHAIN_NAME=${TOOLCHAIN_NAME}" >> $GITHUB_ENV
25+
echo "TOOLCHAIN_HOME_LOCATION=$HOME/Library/Developer/Toolchains/${TOOLCHAIN_NAME}.xctoolchain" >> $GITHUB_ENV
26+
echo "SWIFT_APIS_BUILD_DIR=/tmp/BinaryCache/tensorflow-swift-apis" >> $GITHUB_ENV
27+
28+
- name: Install Ninja
29+
run: |
30+
brew install ninja
31+
32+
- name: Install swift.org toolchain
33+
run: |
34+
curl -sOL https://swift.org/builds/development/xcode/${TOOLCHAIN_NAME}/${TOOLCHAIN_NAME}-osx.pkg
35+
xattr -dr com.apple.quarantine ${TOOLCHAIN_NAME}-osx.pkg
36+
installer -pkg ${TOOLCHAIN_NAME}-osx.pkg -target CurrentUserHomeDirectory
37+
rm -rf ${TOOLCHAIN_NAME}-osx.pkg
38+
39+
- name: Install pre-built TensorFlow and X10 libraries
40+
run: |
41+
curl -sL https://artprodeus21.artifacts.visualstudio.com/A8fd008a0-56bc-482c-ba46-67f9425510be/3133d6ab-80a8-4996-ac4f-03df25cd3224/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2NvbXBuZXJkL3Byb2plY3RJZC8zMTMzZDZhYi04MGE4LTQ5OTYtYWM0Zi0wM2RmMjVjZDMyMjQvYnVpbGRJZC80NTU3NC9hcnRpZmFjdE5hbWUvdGVuc29yZmxvdy1kYXJ3aW4teDY00/content?format=zip -o tensorflow-darwin-x64.zip
42+
unzip tensorflow-darwin-x64.zip
43+
mv tensorflow-darwin-x64/Library/tensorflow-2.4.0 ~/Library/
44+
45+
- name: Build tensorflow/swift-apis via CMake
46+
run: |
47+
cmake \
48+
-B $SWIFT_APIS_BUILD_DIR \
49+
-D BUILD_SHARED_LIBS=YES \
50+
-D CMAKE_BUILD_TYPE=Release \
51+
-D CMAKE_INSTALL_PREFIX=${TOOLCHAIN_HOME_LOCATION}/usr \
52+
-D CMAKE_Swift_COMPILER=${TOOLCHAIN_HOME_LOCATION}/usr/bin/swiftc \
53+
-D CMAKE_OSX_DEPLOYMENT_TARGET=10.9 \
54+
-D TENSORFLOW_USE_STANDARD_TOOLCHAIN=YES \
55+
-D X10_LIBRARY=${HOME}/Library/tensorflow-2.4.0/usr/lib/libx10.dylib \
56+
-D X10_INCLUDE_DIRS=${HOME}/Library/tensorflow-2.4.0/usr/include \
57+
-D BUILD_TESTING=NO \
58+
-G Ninja \
59+
-S ${PWD}
60+
61+
- name: Install tensorflow/swift-apis into toolchain
62+
run: |
63+
cmake --build $SWIFT_APIS_BUILD_DIR --target install
64+
65+
- name: Build toolchain package installer
66+
run: |
67+
# TOOLCHAIN_SHORT_DATE: TOOLCHAIN_DATE with hypens removed. Used for toolchain identifier and version.
68+
TOOLCHAIN_SHORT_DATE="${TOOLCHAIN_DATE//-/}"
69+
TOOLCHAIN_ROOT_LOCATION="/Library/Developer/Toolchains/${TOOLCHAIN_NAME}.xctoolchain"
70+
TF_TOOLCHAIN_NAME=swift-tensorflow-DEVELOPMENT-SNAPSHOT-${TOOLCHAIN_DATE}-a" >> $GITHUB_ENV
71+
pkgbuild --identifier org.tensorflow-${TOOLCHAIN_SHORT_DATE} \
72+
--install-location ${TOOLCHAIN_ROOT_LOCATION} \
73+
--version 5.0.${TOOLCHAIN_SHORT_DATE} \
74+
--root ${TOOLCHAIN_HOME_LOCATION} \
75+
${TF_TOOLCHAIN_NAME}-osx.pkg
76+
pwd
77+
ls -alh
78+
79+
- name: Upload toolchain package installer
80+
uses: actions/upload-artifact@v2
81+
with:
82+
name: swift-tensorflow-DEVELOPMENT-SNAPSHOT-${{ env.toolchain-date }}-a-osx.pkg
83+
path: '*.pkg'

0 commit comments

Comments
 (0)