Skip to content

Commit b9b1d6b

Browse files
LLVM release workflows
1 parent 6c2c633 commit b9b1d6b

File tree

1 file changed

+151
-0
lines changed

1 file changed

+151
-0
lines changed

.github/workflows/release-llvm.yml

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
name: Release LLVM
2+
3+
on:
4+
push:
5+
tags:
6+
- "llvm*"
7+
8+
env:
9+
CARGO_TERM_COLOR: always
10+
11+
jobs:
12+
create-release:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: create release
16+
uses: softprops/action-gh-release@v2
17+
with:
18+
name: "LLVM binaries release: ${{ github.ref_name }}"
19+
body: "This release includes binaries of LLVM, used to compile revive itself"
20+
make_latest: false
21+
22+
build-macos:
23+
strategy:
24+
matrix:
25+
os: [macos-14, macos-13]
26+
include:
27+
- os: macos-13
28+
arch: x64
29+
- os: macos-14
30+
arch: arm64
31+
needs: create-release
32+
runs-on: ${{ matrix.os }}
33+
name: "build-macos-${{ matrix.arch }}"
34+
env:
35+
RUST_LOG: trace
36+
steps:
37+
- uses: actions/checkout@v4
38+
39+
- name: install macos deps
40+
run: |
41+
brew install ninja
42+
43+
- name: versions
44+
run: |
45+
rustup show
46+
cargo --version
47+
cmake --version
48+
echo "bash:" && bash --version
49+
echo "ninja:" && ninja --version
50+
echo "clang:" && clang --version
51+
52+
- name: Build LLVM
53+
run: |
54+
make install-llvm
55+
56+
- name: clean
57+
# check removed files
58+
run: |
59+
cd target-llvm/gnu/target-final/bin/
60+
rm diagtool llvm-libtool-darwin llvm-lipo llvm-pdbutil llvm-dwarfdump llvm-nm llvm-readobj llvm-cfi-verify \
61+
sancov llvm-debuginfo-analyzer llvm-objdump llvm-profgen llvm-extract llvm-jitlink llvm-c-test llvm-gsymutil llvm-dwp \
62+
dsymutil llvm-dwarfutil llvm-exegesis lli clang-rename bugpoint clang-extdef-mapping clang-refactor c-index-test \
63+
llvm-reduce llvm-lto clang-linker-wrapper llc llvm-lto2
64+
65+
- name: package artifacts
66+
run: |
67+
tar -cf "${{ github.ref_name }}-macos-${{ matrix.arch }}.tar.gz" target-llvm/gnu/target-final
68+
69+
- name: upload archive to release
70+
uses: softprops/action-gh-release@v2
71+
with:
72+
make_latest: false
73+
files: |
74+
${{ github.ref_name }}-macos-${{ matrix.arch }}.tar.gz
75+
76+
77+
build-linux-all:
78+
needs: create-release
79+
runs-on: parity-large
80+
# runs-on: ubuntu-latest
81+
env:
82+
RUST_LOG: trace
83+
steps:
84+
- uses: actions/checkout@v4
85+
86+
- name: install linux deps
87+
run: |
88+
sudo apt-get update && sudo apt-get install -y cmake ninja-build curl git libssl-dev pkg-config clang lld musl
89+
90+
- name: Install Rust stable toolchain
91+
uses: actions-rs/toolchain@v1
92+
with:
93+
profile: minimal
94+
toolchain: stable
95+
components: rust-src
96+
target: wasm32-unknown-emscripten
97+
98+
- name: versions
99+
run: |
100+
rustup show
101+
cargo --version
102+
cmake --version
103+
echo "bash:" && bash --version
104+
echo "ninja:" && ninja --version
105+
echo "clang:" && clang --version
106+
107+
- name: Build host LLVM
108+
run: |
109+
make install-llvm
110+
111+
- name: Build gnu LLVM
112+
run: |
113+
revive-llvm clone
114+
revive-llvm build --llvm-projects lld --llvm-projects clang
115+
116+
- name: Build musl LLVM
117+
run: |
118+
revive-llvm --target-env musl build --llvm-projects lld --llvm-projects clang
119+
120+
- name: Build emscripten LLVM
121+
run: |
122+
revive-llvm --target-env emscripten clone
123+
source emsdk/emsdk_env.sh
124+
revive-llvm --target-env emscripten build --llvm-projects lld
125+
126+
- name: clean
127+
# check removed files
128+
run: |
129+
for target in gnu emscripten musl; do
130+
cd target-llvm/${target}/target-final/bin/
131+
rm -rf diagtool llvm-libtool-darwin llvm-lipo llvm-pdbutil llvm-dwarfdump llvm-nm llvm-readobj llvm-cfi-verify \
132+
sancov llvm-debuginfo-analyzer llvm-objdump llvm-profgen llvm-extract llvm-jitlink llvm-c-test llvm-gsymutil llvm-dwp \
133+
dsymutil llvm-dwarfutil llvm-exegesis lli clang-rename bugpoint clang-extdef-mapping clang-refactor c-index-test \
134+
llvm-reduce llvm-lto clang-linker-wrapper llc llvm-lto2
135+
cd -
136+
done
137+
138+
- name: package artifacts
139+
run: |
140+
tar -cf "${{ github.ref_name }}-gnu-linux.tar.gz" target-llvm/gnu/target-final
141+
tar -cf "${{ github.ref_name }}-musl-linux.tar.gz" target-llvm/musl/target-final
142+
tar -cf "${{ github.ref_name }}-emscripten.tar.gz" target-llvm/emscripten/target-fina
143+
144+
- name: upload archive to release
145+
uses: softprops/action-gh-release@v2
146+
with:
147+
make_latest: false
148+
files: |
149+
${{ github.ref_name }}-gnu-linux.tar.gz
150+
${{ github.ref_name }}-musl-linux.tar.gz
151+
${{ github.ref_name }}-emscripten.tar.gz

0 commit comments

Comments
 (0)