Skip to content

Commit ec1e51d

Browse files
committed
Changed CI to use CMake to drive checkout of repositories
Signed-off-by: Jared Duffey <[email protected]>
1 parent 853a810 commit ec1e51d

File tree

7 files changed

+119
-22
lines changed

7 files changed

+119
-22
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,3 +135,5 @@ IDL/various
135135
/src_programs/*.c
136136
/src_programs/go*
137137
/manuals_todo/Eshelby
138+
139+
Workspace/

.gitmodules

Lines changed: 0 additions & 6 deletions
This file was deleted.

CMakeLists.txt

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
cmake_minimum_required(VERSION 3.14.0)
2+
3+
project(EMSoftCI VERSION 2.0.0.0 LANGUAGES NONE)
4+
5+
include(ExternalProject)
6+
7+
set(EMSOFT_WORKSPACE ${PROJECT_SOURCE_DIR}/Workspace CACHE PATH "Root directory where repos will be cloned")
8+
9+
include(${PROJECT_SOURCE_DIR}/Repos.cmake)
10+
11+
#------------------------------------------------------------------------------
12+
# Function to clone the repository using ExternalProject_Add
13+
#------------------------------------------------------------------------------
14+
function(CloneRepo)
15+
set(options)
16+
set(oneValueArgs NAME ROOT_DIR GIT_REPO GIT_TAG)
17+
set(multiValueArgs)
18+
cmake_parse_arguments(ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
19+
20+
set(CLONE_DIR ${ARGS_ROOT_DIR}/${ARGS_NAME})
21+
22+
message(STATUS "Cloning \"${ARGS_GIT_REPO}\" at tag \"${ARGS_GIT_TAG}\" in \"${CLONE_DIR}\"" )
23+
ExternalProject_Add(${ARGS_NAME}
24+
GIT_REPOSITORY ${ARGS_GIT_REPO}
25+
GIT_TAG ${ARGS_GIT_TAG}
26+
GIT_PROGRESS ON
27+
28+
SOURCE_DIR ${CLONE_DIR}
29+
30+
UPDATE_COMMAND ""
31+
PATCH_COMMAND ""
32+
CONFIGURE_COMMAND ""
33+
BUILD_COMMAND ""
34+
INSTALL_COMMAND ""
35+
TEST_COMMAND ""
36+
37+
TMP_DIR ${PROJECT_BINARY_DIR}/${ARGS_NAME}/temp
38+
STAMP_DIR ${PROJECT_BINARY_DIR}/${ARGS_NAME}/stamp
39+
DOWNLOAD_DIR ${PROJECT_BINARY_DIR}/${ARGS_NAME}/download
40+
BINARY_DIR ${PROJECT_BINARY_DIR}/${ARGS_NAME}/binary
41+
INSTALL_DIR ${PROJECT_BINARY_DIR}/${ARGS_NAME}/install
42+
43+
LOG_DOWNLOAD ON
44+
LOG_UPDATE ON
45+
LOG_CONFIGURE ON
46+
LOG_BUILD ON
47+
LOG_TEST ON
48+
LOG_INSTALL ON
49+
)
50+
endfunction()
51+
52+
if("${EMSOFT_WORKSPACE}" STREQUAL "")
53+
message(FATAL_ERROR "EMSOFT_WORKSPACE is empty. Cloning EMsoft can not continue. \
54+
Please set the -EMSOFT_WORKSPACE=/Path/to/Directory/of/EMsoft to the directory where you want to clone all the DREAM3D \
55+
repositories. Anything in that directory may be over written.")
56+
endif()
57+
58+
foreach(repo ${EMSOFT_REPOS})
59+
CloneRepo(NAME ${repo}
60+
GIT_REPO "${${repo}_BASE_URL}/${${repo}_GH_ORG}/${${repo}_REPO_NAME}.git"
61+
GIT_TAG "${${repo}_GIT_BRANCH}"
62+
ROOT_DIR "${EMSOFT_WORKSPACE}"
63+
)
64+
endforeach()

EMsoft

Lines changed: 0 additions & 1 deletion
This file was deleted.

EMsoftData

Lines changed: 0 additions & 1 deletion
This file was deleted.

Repos.cmake

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
set(EMSOFT_REPOS
2+
EMsoft
3+
EMsoftData
4+
)
5+
6+
#--------------------------------------------------------------------------------------------------
7+
# EMsoft Details
8+
#--------------------------------------------------------------------------------------------------
9+
set(EMsoft_REPO_NAME "EMsoft")
10+
set(EMsoft_BASE_URL "https://www.github.com")
11+
set(EMsoft_GH_ORG "EMsoft-org")
12+
set(EMsoft_GIT_BRANCH "develop")
13+
14+
#--------------------------------------------------------------------------------------------------
15+
# EMsoftData Details
16+
#--------------------------------------------------------------------------------------------------
17+
set(EMsoftData_REPO_NAME "EMsoftData")
18+
set(EMsoftData_BASE_URL "https://www.github.com")
19+
set(EMsoftData_GH_ORG "EMsoft-org")
20+
set(EMsoftData_GIT_BRANCH "develop")

azure-pipelines.yml

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,14 @@ stages:
2828
echo BUILDNAME=$(Agent.OS)-$(Agent.MachineName)-$(Build.SourceBranchName)_$(Build.BuildNumber)
2929
echo Build.BuildNumber=$(Build.BuildNumber)
3030
displayName: 'Dump Azure Variables'
31+
- script: |
32+
cd $(Build.Repository.LocalPath)
33+
cmake -G "Unix Makefiles" -S $(Build.Repository.LocalPath) -B $(Build.Repository.LocalPath)/Build
34+
cmake --build $(Build.Repository.LocalPath)/Build
35+
displayName: 'Clone Repositories'
3136
- script: |
3237
cd $(Build.BinariesDirectory)
33-
cmake -G "Unix Makefiles" -DEMsoft_SDK=$(Agent.WorkFolder) -DEMsoftData_DIR=$(Build.Repository.LocalPath)/EMsoftData -DCMAKE_BUILD_TYPE=Release -DBUILDNAME="$(Agent.MachineName)-$(Agent.OS)-$(Build.SourceBranchName)_$(Build.BuildNumber)" $(Build.Repository.LocalPath)/EMsoft
38+
cmake -G "Unix Makefiles" -DEMsoft_SDK=$(Agent.WorkFolder) -DEMsoftData_DIR=$(Build.Repository.LocalPath)/Workspace/EMsoftData -DCMAKE_BUILD_TYPE=Release -DBUILDNAME="$(Agent.MachineName)-$(Agent.OS)-$(Build.SourceBranchName)_$(Build.BuildNumber)" $(Build.Repository.LocalPath)/Workspace/EMsoft
3439
displayName: 'Configure EMsoft'
3540
- script: |
3641
cd $(Build.BinariesDirectory)
@@ -45,6 +50,8 @@ stages:
4550
cpack --verbose
4651
displayName: 'Packing EMsoft'
4752
- job: Windows_10_19_03
53+
variables:
54+
cmake_dir: '$(Agent.WorkFolder)\..\cmake-3.16.2-win64-x64'
4855
timeoutInMinutes: 120
4956
workspace:
5057
clean: all
@@ -67,23 +74,30 @@ stages:
6774
echo BUILDNAME=$(Agent.OS)-$(Agent.MachineName)-$(Build.SourceBranchName)_$(Build.BuildNumber)
6875
echo Build.BuildNumber=$(Build.BuildNumber)
6976
displayName: 'Dump Azure Variables'
77+
- script: |
78+
cd $(Build.Repository.LocalPath)
79+
$(cmake_dir)\bin\cmake.exe -G "NMake Makefiles" -S $(Build.Repository.LocalPath) -B $(Build.Repository.LocalPath)/Build
80+
$(cmake_dir)\bin\cmake.exe --build $(Build.Repository.LocalPath)/Build
81+
displayName: 'Clone Repositories'
7082
- script: |
7183
cd $(Build.BinariesDirectory)
72-
$(Agent.WorkFolder)\..\cmake-3.16.2-win64-x64\bin\cmake.exe -G "NMake Makefiles" -DEMsoft_SDK=$(Agent.WorkFolder) -DEMsoftData_DIR=$(Build.Repository.LocalPath)/EMsoftData -DBUILDNAME="$(Agent.MachineName)-$(Agent.OS)-$(Build.SourceBranchName)_$(Build.BuildNumber)" -DCMAKE_BUILD_TYPE=Release $(Build.Repository.LocalPath)/EMsoft
84+
$(cmake_dir)\bin\cmake.exe -G "NMake Makefiles" -DEMsoft_SDK=$(Agent.WorkFolder) -DEMsoftData_DIR=$(Build.Repository.LocalPath)/Workspace/EMsoftData -DBUILDNAME="$(Agent.MachineName)-$(Agent.OS)-$(Build.SourceBranchName)_$(Build.BuildNumber)" -DCMAKE_BUILD_TYPE=Release $(Build.Repository.LocalPath)/Workspace/EMsoft
7385
displayName: 'Configure EMsoft'
7486
- script: |
7587
cd $(Build.BinariesDirectory)
76-
$(Agent.WorkFolder)\..\cmake-3.16.2-win64-x64\bin\cmake --build . --config Release --target all --parallel 12
88+
$(cmake_dir)\bin\cmake.exe --build . --config Release --target all --parallel 12
7789
displayName: 'Compile EMsoft'
7890
- script: |
7991
cd $(Build.BinariesDirectory)
80-
$(Agent.WorkFolder)\..\cmake-3.16.2-win64-x64\bin\ctest -D Experimental --timeout 7200 -DCTEST_SITE=$(Agent.MachineName).bluequartz.net -Ddashboard_source_name=EMsoft
92+
$(cmake_dir)\bin\ctest.exe -D Experimental --timeout 7200 -DCTEST_SITE=$(Agent.MachineName).bluequartz.net -Ddashboard_source_name=EMsoft
8193
displayName: 'Testing EMsoft'
8294
- script: |
8395
cd $(Build.BinariesDirectory)
84-
$(Agent.WorkFolder)\..\cmake-3.16.2-win64-x64\bin\cpack --verbose
96+
$(cmake_dir)\bin\cpack.exe --verbose
8597
displayName: 'Packing EMsoft'
86-
- job: Linux_Ubuntu_16_04
98+
- job: Linux_Ubuntu_18_04
99+
variables:
100+
cmake_dir: '$(Agent.WorkFolder)/../cmake-3.16.6-Linux-x86_64'
87101
timeoutInMinutes: 120
88102
workspace:
89103
clean: all
@@ -106,23 +120,28 @@ stages:
106120
echo BUILDNAME=$(Agent.OS)-$(Agent.MachineName)-$(Build.SourceBranchName)_$(Build.BuildNumber)
107121
echo Build.BuildNumber=$(Build.BuildNumber)
108122
displayName: 'Dump Azure Variables'
123+
- script: |
124+
cd $(Build.Repository.LocalPath)
125+
$(cmake_dir)/bin/cmake -S $(Build.Repository.LocalPath) -B $(Build.Repository.LocalPath)/Build
126+
$(cmake_dir)/bin/cmake --build $(Build.Repository.LocalPath)/Build
127+
displayName: 'Clone Repositories'
109128
- script: |
110129
cd $(Build.BinariesDirectory)
111-
export CXX=/usr/bin/g++-7
112-
export CC=/usr/bin/gcc-7
113-
export FC=/usr/bin/gfortran-7
114-
$(Agent.WorkFolder)/../cmake-3.16.2-Linux-x86_64/bin/cmake -G "Unix Makefiles" -DEMsoft_SDK=$(Agent.WorkFolder) -DEMsoftData_DIR=$(Build.Repository.LocalPath)/EMsoftData -DCMAKE_BUILD_TYPE=Release -DBUILDNAME="$(Agent.MachineName)-$(Agent.OS)-$(Build.SourceBranchName)_$(Build.BuildNumber)" $(Build.Repository.LocalPath)/EMsoft
130+
export CXX=/usr/bin/g++-8
131+
export CC=/usr/bin/gcc-8
132+
export FC=/usr/bin/gfortran-8
133+
$(cmake_dir)/bin/cmake -G "Unix Makefiles" -DEMsoft_SDK=$(Agent.WorkFolder) -DEMsoftData_DIR=$(Build.Repository.LocalPath)/Workspace/EMsoftData -DCMAKE_BUILD_TYPE=Release -DBUILDNAME="$(Agent.MachineName)-$(Agent.OS)-$(Build.SourceBranchName)_$(Build.BuildNumber)" $(Build.Repository.LocalPath)/Workspace/EMsoft
115134
displayName: 'Configure EMsoft'
116135
- script: |
117136
cd $(Build.BinariesDirectory)
118-
$(Agent.WorkFolder)/../cmake-3.16.2-Linux-x86_64/bin/cmake --build . --config Release --target all --parallel 10
137+
$(cmake_dir)/bin/cmake --build . --config Release --target all --parallel 10
119138
displayName: 'Compile EMsoft'
120139
- script: |
121140
cd $(Build.BinariesDirectory)
122-
export EMSOFTPATHNAME=$(Build.Repository.LocalPath)/EMsoft
123-
$(Agent.WorkFolder)/../cmake-3.16.2-Linux-x86_64/bin/ctest -D Experimental --timeout 7200 -DCTEST_SITE=$(Agent.MachineName).bluequartz.net -Ddashboard_source_name=EMsoft
141+
export EMSOFTPATHNAME=$(Build.Repository.LocalPath)/Workspace/EMsoft
142+
$(cmake_dir)/bin/ctest -D Experimental --timeout 7200 -DCTEST_SITE=$(Agent.MachineName).bluequartz.net -Ddashboard_source_name=EMsoft
124143
displayName: 'Testing EMsoft'
125144
- script: |
126145
cd $(Build.BinariesDirectory)
127-
$(Agent.WorkFolder)/../cmake-3.16.2-Linux-x86_64/bin/cpack --verbose
146+
$(cmake_dir)/bin/cpack --verbose
128147
displayName: 'Packing EMsoft'

0 commit comments

Comments
 (0)