Skip to content

Commit 65ed48e

Browse files
committed
[Xtensa] Corrected .gitlab-ci.yml
Add job which builds toolchain for windows.
1 parent bfc9ae1 commit 65ed48e

File tree

1 file changed

+79
-53
lines changed

1 file changed

+79
-53
lines changed

.gitlab-ci.yml

Lines changed: 79 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,27 @@ stages:
33
- private_deploy
44
- test
55

6-
image: ${CI_DOCKER_REGISTRY}/llvm-build:1-6ff17268
6+
image: ${CI_DOCKER_REGISTRY}/llvm-build:2
77

88
variables:
99

1010
CONF_TARGET: "xtensa-esp32-elf"
11-
CLANG_XTENSA_TOOLCHAIN: "${CONF_TARGET}-clang"
12-
PLATFORM_NAME: "linux-amd64"
11+
XTENSA_CLANG_TOOLCHAIN: "${CONF_TARGET}-clang"
12+
PLATFORM_NAME_LINUX: "linux-amd64"
13+
PLATFORM_NAME_WIN: "win64"
1314

14-
ARCHIVE_TOOL: "tar cJf"
15-
UNARCHIVE_TOOL: "tar xf"
16-
ARCHIVE_EXT: "tar.xz"
15+
XTENSA_CLANG_TOOLCHAIN_BRANCH: "esp-20210520-r11.0.0"
16+
GCC_REL_TAG: "gcc8_4_0-esp-2020r3"
17+
XTENSA_GCC_TOOLCHAIN_LINUX_TAR_GZ: "xtensa-esp32-elf-${GCC_REL_TAG}-linux-amd64.tar.gz"
18+
XTENSA_GCC_TOOLCHAIN_WIN_ZIP: "xtensa-esp32-elf-${GCC_REL_TAG}-win64.zip"
19+
20+
ARCHIVE_TOOL_LINUX: "tar cJf"
21+
UNARCHIVE_TOOL_LINUX: "tar xf"
22+
ARCHIVE_EXT_LINUX: "tar.xz"
23+
24+
ARCHIVE_TOOL_WIN: "zip -r"
25+
UNARCHIVE_TOOL_WIN: "unzip"
26+
ARCHIVE_EXT_WIN: "zip"
1727

1828
.use_ci_tools: &use_ci_tools |
1929
curl -sSL ${CIT_LOADER_URL} -o cit_loader.sh && sh cit_loader.sh
@@ -39,74 +49,83 @@ before_script:
3949
echo "REL_NAME: $REL_NAME"
4050
echo "ARCHIVE_NAME: $ARCHIVE_NAME"
4151

42-
.build_clang: &build_clang |
43-
mkdir build
44-
cd build
45-
cmake ../llvm -DLLVM_TARGETS_TO_BUILD="X86" -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=Xtensa -DCMAKE_BUILD_TYPE=Release -DLLVM_EXTERNAL_CLANG_SOURCE_DIR=../clang
46-
cmake --build . -- -j8
47-
git clone ${GITLAB_SSH_SERVER}/${LLVM_PREPARE}
48-
cd llvm-build-prepare
49-
./check-llvm-prepare.sh
50-
cd ..
51-
cmake --build . --target check-llvm
52-
cd ..
53-
5452
# Get an existing crosstool-ng build for esp32
55-
.get_gcc_toolchain: &get_gcc_toolchain |
56-
wget https://dl.espressif.com/dl/xtensa-esp32-elf-gcc8_2_0-esp-2019r2-linux-amd64.tar.gz
57-
tar -xf xtensa-esp32-elf-gcc8_2_0-esp-2019r2-linux-amd64.tar.gz
58-
mv xtensa-esp32-elf ${CLANG_XTENSA_TOOLCHAIN}
59-
60-
.build_clang_wrappers: &build_clang_wrappers |
61-
git clone ${GITLAB_SSH_SERVER}/${XTENSA_CLANG_TOOLCHAIN_REPO}
62-
cd xtensa-clang-toolchain
63-
git checkout release_esp32_clang_11.0.0_gcc_8.2.0
64-
make build_clang_wrap
65-
cd ..
53+
.get_gcc_toolchain_linux: &get_gcc_toolchain_linux |
54+
wget https://dl.espressif.com/dl/${XTENSA_GCC_TOOLCHAIN_LINUX_TAR_GZ}
55+
tar -xf ${XTENSA_GCC_TOOLCHAIN_LINUX_TAR_GZ}
56+
mv xtensa-esp32-elf ${XTENSA_CLANG_TOOLCHAIN}
57+
58+
.get_gcc_toolchain_win: &get_gcc_toolchain_win |
59+
wget https://dl.espressif.com/dl/${XTENSA_GCC_TOOLCHAIN_WIN_ZIP}
60+
unzip ${XTENSA_GCC_TOOLCHAIN_WIN_ZIP}
61+
mv xtensa-esp32-elf ${XTENSA_CLANG_TOOLCHAIN}
62+
63+
.get_clang_toolchain_build_scripts: &get_clang_toolchain_build_scripts |
64+
git clone -b ${XTENSA_CLANG_TOOLCHAIN_BRANCH} ${GITLAB_SSH_SERVER}/${XTENSA_CLANG_TOOLCHAIN_REPO}
65+
cp -r xtensa-clang-toolchain/* .
6666

6767
# Pack the toolchain
6868
.package_toolchain: &package_toolchain |
69-
${ARCHIVE_TOOL} ${ARCHIVE_NAME} ${CLANG_XTENSA_TOOLCHAIN}/
70-
mkdir -p dist
71-
mv ${ARCHIVE_NAME} dist/
72-
echo "${ARCHIVE_NAME}" > dist/file_${PLATFORM_NAME}_${CONF_TARGET}
69+
${ARCHIVE_TOOL} ${ARCHIVE_NAME} ${XTENSA_CLANG_TOOLCHAIN}/
70+
mkdir -p ${DIST_DIR}
71+
mv ${ARCHIVE_NAME} ${DIST_DIR}/
72+
echo "${ARCHIVE_NAME}" > ${DIST_DIR}/file_${PLATFORM_NAME}_${CONF_TARGET}
7373

74-
build_clang_toolchain:
74+
build_clang_toolchain_linux:
7575
stage: build
7676
artifacts:
7777
paths:
78-
- dist/
78+
- dist_linux/
7979
when: always
8080
expire_in: 10 day
8181
script:
82+
- ARCHIVE_TOOL=${ARCHIVE_TOOL_LINUX}
83+
- UNARCHIVE_TOOL=${UNARCHIVE_TOOL_LINUX}
84+
- ARCHIVE_EXT=${ARCHIVE_EXT_LINUX}
85+
- PLATFORM_NAME=${PLATFORM_NAME_LINUX}
86+
- DIST_DIR="dist_linux"
8287
- *get_release_name
83-
- *build_clang_wrappers
84-
- *build_clang
85-
- *get_gcc_toolchain
86-
- mv build/bin/clang ${CLANG_XTENSA_TOOLCHAIN}/bin/
87-
- mv build/bin/clang++ ${CLANG_XTENSA_TOOLCHAIN}/bin/
88-
- mv build/bin/clang-11 ${CLANG_XTENSA_TOOLCHAIN}/bin/
89-
- mv build/bin/clang-cl ${CLANG_XTENSA_TOOLCHAIN}/bin/
90-
- mv build/bin/clang-cpp ${CLANG_XTENSA_TOOLCHAIN}/bin/
91-
- mv build/bin/scan-build ${CLANG_XTENSA_TOOLCHAIN}/bin/
92-
- mv build/libexec/* ${CLANG_XTENSA_TOOLCHAIN}/libexec/
93-
- mv build/lib/clang ${CLANG_XTENSA_TOOLCHAIN}/lib/
94-
- mv xtensa-clang-toolchain/xtensa-esp32-elf-clang* ${CLANG_XTENSA_TOOLCHAIN}/bin/
88+
- *get_gcc_toolchain_linux
89+
- *get_clang_toolchain_build_scripts
90+
- ./build-toolchain-linux.sh ${XTENSA_CLANG_TOOLCHAIN}
91+
- *package_toolchain
92+
93+
build_clang_toolchain_win:
94+
stage: build
95+
artifacts:
96+
paths:
97+
- dist_win/
98+
when: always
99+
expire_in: 10 day
100+
script:
101+
- ARCHIVE_TOOL=${ARCHIVE_TOOL_WIN}
102+
- UNARCHIVE_TOOL=${UNARCHIVE_TOOL_WIN}
103+
- ARCHIVE_EXT=${ARCHIVE_EXT_WIN}
104+
- PLATFORM_NAME=${PLATFORM_NAME_WIN}
105+
- DIST_DIR="dist_win"
106+
- *get_release_name
107+
- *get_gcc_toolchain_win
108+
- *get_clang_toolchain_build_scripts
109+
- ./build-toolchain-win.sh ${XTENSA_CLANG_TOOLCHAIN}
95110
- *package_toolchain
96111

97112
testsuite:
98113
stage: test
99114
dependencies:
100-
- build_clang_toolchain
115+
- build_clang_toolchain_linux
101116
script:
117+
- ARCHIVE_TOOL=${ARCHIVE_TOOL_LINUX}
118+
- UNARCHIVE_TOOL=${UNARCHIVE_TOOL_LINUX}
119+
- ARCHIVE_EXT=${ARCHIVE_EXT_LINUX}
120+
- PLATFORM_NAME=${PLATFORM_NAME_LINUX}
102121
- *get_release_name
103-
- ${UNARCHIVE_TOOL} dist/${ARCHIVE_NAME}
122+
- ${UNARCHIVE_TOOL} dist_linux/${ARCHIVE_NAME}
104123

105124
# getting testsuit
106125
- git clone -b feature/ci_llvm_multitarget --depth 1 $GITLAB_SSH_SERVER/idf/llvm-xtensa-testsuite.git
107126

108127
# preparing testsuit
109-
- export PATH=$PATH:${PWD}/${CLANG_XTENSA_TOOLCHAIN}/bin/
128+
- export PATH=$PATH:${PWD}/${XTENSA_CLANG_TOOLCHAIN}/bin/
110129
- cd llvm-xtensa-testsuite
111130

112131
# qemu
@@ -127,9 +146,16 @@ upload_to_http:
127146
- *use_ci_tools
128147
script:
129148
- cit_add_ssh_key "${HTTP_UPLOAD_KEY}"
130-
# List of archives in dist/
131-
- FILES=$(find dist -name file_\* -exec cat {} \+)
132-
- cd dist
149+
# List of archives in dist_linux/
150+
- FILES=$(find dist_linux -name file_\* -exec cat {} \+)
151+
- cd dist_linux
152+
- scp ${FILES} ${HTTP_UPLOAD_DIR}/ct-ng/llvm-builds
153+
# Show info
154+
- echo -e "\nArchives were published there:\n\n$(for n in ${FILES}; do echo "${HTTP_PUBLIC_DIR}/ct-ng/llvm-builds/${n}"; done)\n"
155+
- cd ..
156+
# List of archives in dist_win/
157+
- FILES=$(find dist_win -name file_\* -exec cat {} \+)
158+
- cd dist_win
133159
- scp ${FILES} ${HTTP_UPLOAD_DIR}/ct-ng/llvm-builds
134160
# Show info
135161
- echo -e "\nArchives were published there:\n\n$(for n in ${FILES}; do echo "${HTTP_PUBLIC_DIR}/ct-ng/llvm-builds/${n}"; done)\n"

0 commit comments

Comments
 (0)