Skip to content

Commit d9341b8

Browse files
andreisfrantmak
authored andcommitted
ci: add build scripts of the clang toolchain for macOS
1 parent f2529f3 commit d9341b8

File tree

1 file changed

+59
-50
lines changed

1 file changed

+59
-50
lines changed

.gitlab-ci.yml

+59-50
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,31 @@ stages:
44
- test
55
- public_deploy
66

7-
image: ${CI_DOCKER_REGISTRY}/llvm-build:2
7+
image: ${CI_DOCKER_REGISTRY}/llvm-build:3
88

99
variables:
1010

1111
CONF_TARGET: "xtensa-esp32-elf"
1212
XTENSA_CLANG_TOOLCHAIN: "${CONF_TARGET}-clang"
1313
PLATFORM_NAME_LINUX: "linux-amd64"
1414
PLATFORM_NAME_WIN: "win64"
15+
PLATFORM_NAME_MACOS: "macos"
1516

16-
XTENSA_CLANG_TOOLCHAIN_BRANCH: "esp-20210728-r12.0.1"
17+
XTENSA_CLANG_TOOLCHAIN_BRANCH: "esp-20210903-r12.0.1"
1718
GCC_REL_NAME: "gcc8_4_0-esp-2021r1"
18-
XTENSA_GCC_TOOLCHAIN_LINUX_TAR_GZ: "xtensa-esp32-elf-${GCC_REL_NAME}-linux-amd64.tar.gz"
19-
XTENSA_GCC_TOOLCHAIN_WIN_ZIP: "xtensa-esp32-elf-${GCC_REL_NAME}-win64.zip"
2019

21-
ARCHIVE_TOOL_LINUX: "tar cJf"
22-
UNARCHIVE_TOOL_LINUX: "tar xf"
20+
ARCHIVE_TOOL_LINUX: "tar -cJf"
21+
UNARCHIVE_TOOL_LINUX: "tar -xf"
2322
ARCHIVE_EXT_LINUX: "tar.xz"
2423

2524
ARCHIVE_TOOL_WIN: "zip -9 -r"
2625
UNARCHIVE_TOOL_WIN: "unzip"
2726
ARCHIVE_EXT_WIN: "zip"
2827

28+
ARCHIVE_TOOL_MACOS: "tar -cJf"
29+
UNARCHIVE_TOOL_MACOS: "tar -xf"
30+
ARCHIVE_EXT_MACOS: "tar.xz"
31+
2932
DIST_DIR: "dist"
3033

3134
.use_ci_tools: &use_ci_tools |
@@ -39,15 +42,6 @@ before_script:
3942
- *use_ci_tools
4043
- *add_gitlab_key
4144

42-
.build_template:
43-
stage: build
44-
tags: [ "amd64", "build" ]
45-
artifacts:
46-
paths:
47-
- ${DIST_DIR}/
48-
when: always
49-
expire_in: 10 day
50-
5145
# Prepare release name/number
5246
.get_release_name: &get_release_name |
5347
# using annotated tags
@@ -62,14 +56,9 @@ before_script:
6256
echo "ARCHIVE_NAME: $ARCHIVE_NAME"
6357

6458
# Get an existing crosstool-ng build for esp32
65-
.get_gcc_toolchain_linux: &get_gcc_toolchain_linux |
66-
wget https://dl.espressif.com/dl/${XTENSA_GCC_TOOLCHAIN_LINUX_TAR_GZ}
67-
tar -xf ${XTENSA_GCC_TOOLCHAIN_LINUX_TAR_GZ}
68-
mv xtensa-esp32-elf ${XTENSA_CLANG_TOOLCHAIN}
69-
70-
.get_gcc_toolchain_win: &get_gcc_toolchain_win |
71-
wget https://dl.espressif.com/dl/${XTENSA_GCC_TOOLCHAIN_WIN_ZIP}
72-
unzip ${XTENSA_GCC_TOOLCHAIN_WIN_ZIP}
59+
.get_gcc_toolchain: &get_gcc_toolchain |
60+
wget https://dl.espressif.com/dl/${XTENSA_GCC_TOOLCHAIN}
61+
${UNARCHIVE_TOOL} ${XTENSA_GCC_TOOLCHAIN}
7362
mv xtensa-esp32-elf ${XTENSA_CLANG_TOOLCHAIN}
7463

7564
.get_clang_toolchain_build_scripts: &get_clang_toolchain_build_scripts |
@@ -87,44 +76,64 @@ before_script:
8776
mv ${ARCHIVE_NAME} ${DIST_DIR}/
8877
echo "${ARCHIVE_NAME}" > ${DIST_DIR}/file_${PLATFORM_NAME}_${CONF_TARGET}
8978

90-
build_clang_toolchain_linux:
91-
extends: .build_template
79+
.build_template:
80+
stage: build
81+
tags: [ "amd64", "build" ]
82+
artifacts:
83+
paths:
84+
- ${DIST_DIR}/
85+
when: always
86+
expire_in: 10 day
9287
script:
93-
- ARCHIVE_TOOL=${ARCHIVE_TOOL_LINUX}
94-
- UNARCHIVE_TOOL=${UNARCHIVE_TOOL_LINUX}
95-
- ARCHIVE_EXT=${ARCHIVE_EXT_LINUX}
96-
- PLATFORM_NAME=${PLATFORM_NAME_LINUX}
9788
- *get_release_name
98-
- *get_gcc_toolchain_linux
89+
- *get_gcc_toolchain
9990
- *fix_origin_remote_for_public
10091
- *get_clang_toolchain_build_scripts
101-
- ./build-toolchain-linux.sh ${XTENSA_CLANG_TOOLCHAIN}
92+
- ${BUILD_TOOLCHAIN_CMD} "${XTENSA_CLANG_TOOLCHAIN}"
10293
- *package_toolchain
10394

104-
build_clang_toolchain_win:
95+
linux_amd64_build:
10596
extends: .build_template
106-
script:
107-
- ARCHIVE_TOOL=${ARCHIVE_TOOL_WIN}
108-
- UNARCHIVE_TOOL=${UNARCHIVE_TOOL_WIN}
109-
- ARCHIVE_EXT=${ARCHIVE_EXT_WIN}
110-
- PLATFORM_NAME=${PLATFORM_NAME_WIN}
111-
- *get_release_name
112-
- *get_gcc_toolchain_win
113-
- *fix_origin_remote_for_public
114-
- *get_clang_toolchain_build_scripts
115-
- ./build-toolchain-win.sh ${XTENSA_CLANG_TOOLCHAIN}
116-
- *package_toolchain
117-
118-
testsuite:
97+
variables:
98+
PLATFORM_NAME: "${PLATFORM_NAME_LINUX}"
99+
ARCHIVE_TOOL: "${ARCHIVE_TOOL_LINUX}"
100+
UNARCHIVE_TOOL: "${UNARCHIVE_TOOL_LINUX}"
101+
ARCHIVE_EXT: "${ARCHIVE_EXT_LINUX}"
102+
# a filename was moved here from the global 'variables:' because of GCC_REL_NAME value couldn't be expanded and substituted there
103+
XTENSA_GCC_TOOLCHAIN: "xtensa-esp32-elf-${GCC_REL_NAME}-linux-amd64.tar.gz"
104+
BUILD_TOOLCHAIN_CMD: "./build-toolchain-linux.sh"
105+
106+
win64_build:
107+
extends: .build_template
108+
variables:
109+
PLATFORM_NAME: "${PLATFORM_NAME_WIN}"
110+
ARCHIVE_TOOL: "${ARCHIVE_TOOL_WIN}"
111+
UNARCHIVE_TOOL: "${UNARCHIVE_TOOL_WIN}"
112+
ARCHIVE_EXT: "${ARCHIVE_EXT_WIN}"
113+
XTENSA_GCC_TOOLCHAIN: "xtensa-esp32-elf-${GCC_REL_NAME}-win64.zip"
114+
BUILD_TOOLCHAIN_CMD: "./build-toolchain-win.sh"
115+
116+
macos_amd64_build:
117+
extends: .build_template
118+
variables:
119+
PLATFORM_NAME: "${PLATFORM_NAME_MACOS}"
120+
ARCHIVE_TOOL: "${ARCHIVE_TOOL_MACOS}"
121+
UNARCHIVE_TOOL: "${UNARCHIVE_TOOL_MACOS}"
122+
ARCHIVE_EXT: "${ARCHIVE_EXT_MACOS}"
123+
XTENSA_GCC_TOOLCHAIN: "xtensa-esp32-elf-${GCC_REL_NAME}-macos.tar.gz"
124+
BUILD_TOOLCHAIN_CMD: "./build-toolchain-macos.sh"
125+
126+
linux_amd64_testsuite:
119127
stage: test
120128
tags: [ "amd64", "build" ]
121129
dependencies:
122-
- build_clang_toolchain_linux
130+
- linux_amd64_build
131+
variables:
132+
PLATFORM_NAME: "${PLATFORM_NAME_LINUX}"
133+
ARCHIVE_TOOL: "${ARCHIVE_TOOL_LINUX}"
134+
UNARCHIVE_TOOL: "${UNARCHIVE_TOOL_LINUX}"
135+
ARCHIVE_EXT: "${ARCHIVE_EXT_LINUX}"
123136
script:
124-
- ARCHIVE_TOOL=${ARCHIVE_TOOL_LINUX}
125-
- UNARCHIVE_TOOL=${UNARCHIVE_TOOL_LINUX}
126-
- ARCHIVE_EXT=${ARCHIVE_EXT_LINUX}
127-
- PLATFORM_NAME=${PLATFORM_NAME_LINUX}
128137
- *get_release_name
129138
- ${UNARCHIVE_TOOL} ${DIST_DIR}/${ARCHIVE_NAME}
130139

0 commit comments

Comments
 (0)