forked from llvm/llvm-project
-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy path.gitlab-ci.yml
112 lines (91 loc) · 3.44 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
stages:
- build
- pack
- sign
- private_deploy
- test
- public_deploy
image: ${CI_DOCKER_REGISTRY}/llvm-build:4
variables:
# move all these to CI/CD settings
REL_SFX: "llvm"
CLANG_VER: "15.0.0"
GCC_REL_NAME: "esp-2022r1"
GCC_REL_VER: "gcc11_2_0"
NEWLIB_REPO: "newlib-cygwin"
NEWLIB_REF: "esp-2022r1"
BINUTILS_REPO: "binutils-gdb"
BINUTILS_REF: "esp-2022r1-binutils"
XTENSA_OVERLAYS_REPO: "xtensa-overlays"
XTENSA_OVERLAYS_REF: "master"
LLVM_GCC_TESTSUITE_REF: "release_universal_clang_toolchain"
XTENSA_CLANG_TOOLCHAIN_REF: "release_universal_clang_toolchain"
CROSS_ARM_IMAGE: $CI_DOCKER_REGISTRY/llvm-build-cross-arm:1
PLATFORM_NAME_LINUX: "linux-amd64"
PLATFORM_NAME_LINUX_ARMHF: "linux-armhf"
PLATFORM_NAME_LINUX_ARM64: "linux-arm64"
PLATFORM_NAME_WIN: "win64"
PLATFORM_NAME_MACOS: "macos"
PLATFORM_NAME_MACOS_ARM64: "macos-arm64"
ARCHIVE_TOOL_LINUX: "tar -cJf"
UNARCHIVE_TOOL_LINUX: "tar -xf"
ARCHIVE_EXT_LINUX: "tar.xz"
ARCHIVE_TOOL_WIN: "zip -9 -r"
UNARCHIVE_TOOL_WIN: "unzip"
ARCHIVE_EXT_WIN: "zip"
# Use Linux xz compressor to minimize Windows build artifact size.
# Upon release archive will be re-packed into zip format for uploading to GH.
ARCHIVE_TOOL_WIN_INT: ${ARCHIVE_TOOL_LINUX}
UNARCHIVE_TOOL_WIN_INT: ${UNARCHIVE_TOOL_LINUX}
ARCHIVE_TOOL_MACOS: "tar -cJf"
UNARCHIVE_TOOL_MACOS: "tar -xf"
ARCHIVE_EXT_MACOS: "tar.xz"
ARCHIVE_TOOL_NEWLIB: ${ARCHIVE_TOOL_LINUX}
UNARCHIVE_TOOL_NEWLIB: ${UNARCHIVE_TOOL_LINUX}
ARCHIVE_EXT_NEWLIB: ${ARCHIVE_EXT_LINUX}
LIBS_ARCHIVE_TOOL: "${ARCHIVE_TOOL_LINUX}"
LIBS_UNARCHIVE_TOOL: "${UNARCHIVE_TOOL_LINUX}"
LIBS_ARCHIVE_EXT: "${ARCHIVE_EXT_LINUX}"
DIST_DIR: "dist"
BUILD_DIR: "build"
DOWNLOADS_DIR: "downloads"
###########################################################################
#################### START OF TEMPORARY LEGACY CODE #######################
# TODO: the code below is to be removed after migration to new build script
CONF_TARGET: "xtensa-esp32-elf"
XTENSA_CLANG_TOOLCHAIN: "${CONF_TARGET}-clang"
##################### END OF TEMPORARY LEGACY CODE ########################
###########################################################################
.use_ci_tools_snippet: &use_ci_tools_snippet |
curl -sSL ${CIT_LOADER_URL} -o cit_loader.sh && sh cit_loader.sh
source citools/import_functions
.use_ci_tools:
script:
- *use_ci_tools_snippet
.add_gitlab_key_snippet: &add_gitlab_key_snippet |
cit_add_ssh_key "${GITLAB_KEY}"
.add_gitlab_key:
script:
- *add_gitlab_key_snippet
# LLVM Build System used the remote address to show detailed version info, we'll change it to the public repository
.fix_origin_remote_for_public_snippet: &fix_origin_remote_for_public_snippet |
git remote set-url origin "${GH_REPO_HTTPS}"
.fix_origin_remote_for_public:
script:
- *fix_origin_remote_for_public_snippet
.get_clang_toolchain_build_scripts_snippet: &get_clang_toolchain_build_scripts_snippet |
git clone -b ${XTENSA_CLANG_TOOLCHAIN_REF} ${GITLAB_SSH_SERVER}/${XTENSA_CLANG_TOOLCHAIN_REPO}
cp -r xtensa-clang-toolchain/* .
.get_clang_toolchain_build_scripts:
script:
- *get_clang_toolchain_build_scripts_snippet
before_script:
- !reference [.use_ci_tools, script]
- !reference [.add_gitlab_key, script]
include:
- local: .universal-toolchain-release.yml
rules:
- if: $ESP_CLANG_LEGACY_RELEASE != "true"
- local: .legacy-release.yml
rules:
- if: $ESP_CLANG_LEGACY_RELEASE == "true"