@@ -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
88variables :
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
97112testsuite :
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