mirror of
https://github.com/pezkuwichain/revive.git
synced 2026-10-20 18:56:17 +00:00
Update code base to use LLVM 21 (#434)
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com> Co-authored-by: LJ <81748770+elle-j@users.noreply.github.com> Co-authored-by: xermicus <cyrill@parity.io>
This commit is contained in:
31 files changed
+318
-195
No files matched your search
@@ -51,12 +51,15 @@ runs:
|
||||
result-encoding: string
|
||||
script: |
|
||||
let page = 1;
|
||||
let releases = [];
|
||||
let allReleases = [];
|
||||
|
||||
let target = process.env.target
|
||||
let versionPrefix = process.env.version_prefix
|
||||
|
||||
do {
|
||||
// Fetch all releases from all pages
|
||||
core.info('Fetching releases from revive repository...');
|
||||
let hasMorePages = true;
|
||||
while (hasMorePages) {
|
||||
const res = await github.rest.repos.listReleases({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
@@ -64,43 +67,55 @@ runs:
|
||||
page,
|
||||
});
|
||||
|
||||
releases = res.data
|
||||
releases.sort((a, b) => {
|
||||
return (a.published_at < b.published_at) ? 1 : ((a.published_at > b.published_at) ? -1 : 0);
|
||||
});
|
||||
|
||||
let llvmRelease;
|
||||
if (versionPrefix) {
|
||||
// Search for latest release matching the version prefix
|
||||
llvmRelease = releases.find(release => {
|
||||
return release.tag_name.startsWith(versionPrefix);
|
||||
});
|
||||
if (llvmRelease) {
|
||||
core.info(`Found LLVM release matching prefix '${versionPrefix}': ${llvmRelease.tag_name}`);
|
||||
}
|
||||
if (res.data.length > 0) {
|
||||
core.info(`Page ${page}: Fetched ${res.data.length} releases`);
|
||||
allReleases.push(...res.data);
|
||||
page++;
|
||||
} else {
|
||||
// Find latest LLVM release
|
||||
llvmRelease = releases.find(release => {
|
||||
return release.tag_name.startsWith('llvm-');
|
||||
});
|
||||
if (llvmRelease) {
|
||||
core.info(`Found latest LLVM version: ${llvmRelease.tag_name}`);
|
||||
}
|
||||
hasMorePages = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (llvmRelease){
|
||||
let asset = llvmRelease.assets.find(asset =>{
|
||||
return asset.name.includes(target);
|
||||
});
|
||||
if (!asset){
|
||||
core.setFailed(`Artifact for '${target}' not found in release ${llvmRelease.tag_name} (${llvmRelease.html_url})`);
|
||||
process.exit();
|
||||
}
|
||||
return asset.browser_download_url;
|
||||
core.info(`Total releases fetched: ${allReleases.length}`);
|
||||
|
||||
// Sort all releases by publication date (newest first)
|
||||
allReleases.sort((a, b) => new Date(b.published_at) - new Date(a.published_at));
|
||||
|
||||
// Debug: Print all LLVM releases
|
||||
const llvmReleases = allReleases.filter(r => r.tag_name.startsWith('llvm-'));
|
||||
core.info(`Found ${llvmReleases.length} LLVM releases in total:`);
|
||||
llvmReleases.forEach(r => {
|
||||
core.info(` - ${r.tag_name} (published: ${r.published_at})`);
|
||||
});
|
||||
|
||||
// Find the appropriate LLVM release
|
||||
let llvmRelease;
|
||||
if (versionPrefix) {
|
||||
// Search for latest release matching the version prefix
|
||||
llvmRelease = llvmReleases.find(release => {
|
||||
return release.tag_name.startsWith(versionPrefix);
|
||||
});
|
||||
if (llvmRelease) {
|
||||
core.info(`Selected LLVM release matching prefix '${versionPrefix}': ${llvmRelease.tag_name}`);
|
||||
}
|
||||
} else {
|
||||
// Find latest LLVM release (first in sorted list)
|
||||
llvmRelease = llvmReleases[0];
|
||||
if (llvmRelease) {
|
||||
core.info(`Selected latest LLVM version: ${llvmRelease.tag_name}`);
|
||||
}
|
||||
}
|
||||
|
||||
page++;
|
||||
} while(releases.length > 0);
|
||||
if (llvmRelease) {
|
||||
let asset = llvmRelease.assets.find(asset => {
|
||||
return asset.name.includes(target);
|
||||
});
|
||||
if (!asset) {
|
||||
core.setFailed(`Artifact for '${target}' not found in release ${llvmRelease.tag_name} (${llvmRelease.html_url})`);
|
||||
process.exit();
|
||||
}
|
||||
return asset.browser_download_url;
|
||||
}
|
||||
|
||||
if (versionPrefix) {
|
||||
core.setFailed(`No LLVM releases matching prefix '${versionPrefix}' found! Please check the version.`);
|
||||
|
||||
@@ -60,7 +60,7 @@ jobs:
|
||||
|
||||
- name: Set LLVM Environment Variables
|
||||
run: |
|
||||
echo "LLVM_SYS_181_PREFIX=$(pwd)/llvm-x86_64-unknown-linux-gnu" >> $GITHUB_ENV
|
||||
echo "LLVM_SYS_211_PREFIX=$(pwd)/llvm-x86_64-unknown-linux-gnu" >> $GITHUB_ENV
|
||||
|
||||
- name: Build resolc
|
||||
run: |
|
||||
|
||||
@@ -85,7 +85,7 @@ jobs:
|
||||
cat /etc/apt/sources.list
|
||||
sudo sed -i 's/jammy/noble/g' /etc/apt/sources.list
|
||||
cat /etc/apt/sources.list
|
||||
sudo apt-get update && sudo apt-get install -y cmake ninja-build curl git libssl-dev pkg-config clang lld musl xz-utils libc6-dev gcc-multilib
|
||||
sudo apt-get update && sudo apt-get install -y cmake ninja-build curl git libssl-dev pkg-config clang lld musl xz-utils libc6-dev gcc-multilib g++ build-essential linux-libc-dev
|
||||
|
||||
- name: Install Dependencies
|
||||
if: ${{ matrix.host == 'macos' }}
|
||||
@@ -127,7 +127,7 @@ jobs:
|
||||
- name: Package Artifact
|
||||
shell: bash
|
||||
run: |
|
||||
mv target-llvm/${{ matrix.builder-arg }}/target-final/ llvm-${{ matrix.target }}
|
||||
cp -r target-llvm/${{ matrix.builder-arg }}/target-final/ llvm-${{ matrix.target }}
|
||||
tar -czf "${{ needs.create-release-draft.outputs.version }}-${{ matrix.target }}.tar.gz" llvm-${{ matrix.target }}
|
||||
|
||||
- name: Add Artifact to Release
|
||||
|
||||
@@ -36,7 +36,7 @@ on:
|
||||
|
||||
env:
|
||||
CARGO_TERM_COLOR: always
|
||||
RUST_MUSL_CROSS_IMAGE: messense/rust-musl-cross@sha256:c0154e992adb791c3b848dd008939d19862549204f8cb26f5ca7a00f629e6067
|
||||
RUST_MUSL_CROSS_IMAGE: messense/rust-musl-cross@sha256:2a8837c43bf12e246f1ebd05191de9ee27fcd22f9ca81511ccd4cf75dc16d71c
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@@ -95,7 +95,7 @@ jobs:
|
||||
if: ${{ matrix.type == 'native' }}
|
||||
shell: bash
|
||||
run: |
|
||||
export LLVM_SYS_181_PREFIX=$PWD/llvm-${{ matrix.target }}
|
||||
export LLVM_SYS_211_PREFIX=$PWD/llvm-${{ matrix.target }}
|
||||
make install-bin
|
||||
mv target/release/resolc resolc-${{ matrix.target }} || mv target/release/resolc.exe resolc-${{ matrix.target }}.exe
|
||||
|
||||
@@ -106,7 +106,7 @@ jobs:
|
||||
cd /opt/revive
|
||||
chown -R root:root .
|
||||
apt update && apt upgrade -y && apt install -y pkg-config
|
||||
export LLVM_SYS_181_PREFIX=/opt/revive/llvm-${{ matrix.target }}
|
||||
export LLVM_SYS_211_PREFIX=/opt/revive/llvm-${{ matrix.target }}
|
||||
make install-bin
|
||||
mv target/${{ matrix.target }}/release/resolc resolc-${{ matrix.target }}
|
||||
"
|
||||
@@ -169,7 +169,7 @@ jobs:
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
export LLVM_SYS_181_PREFIX=$PWD/llvm-x86_64-unknown-linux-gnu
|
||||
export LLVM_SYS_211_PREFIX=$PWD/llvm-x86_64-unknown-linux-gnu
|
||||
export REVIVE_LLVM_TARGET_PREFIX=$PWD/llvm-wasm32-unknown-emscripten
|
||||
source emsdk/emsdk_env.sh
|
||||
make install-wasm
|
||||
|
||||
@@ -33,7 +33,7 @@ jobs:
|
||||
- name: Install Dependencies
|
||||
if: matrix.runner == 'parity-large'
|
||||
run: |
|
||||
sudo apt update && sudo apt-get install -y cmake ninja-build curl git libssl-dev pkg-config clang lld musl
|
||||
sudo apt update && sudo apt-get install -y cmake ninja-build curl git libssl-dev pkg-config clang lld musl xz-utils build-essential
|
||||
|
||||
- name: Install Dependencies
|
||||
if: matrix.runner == 'macos-15'
|
||||
|
||||
@@ -50,7 +50,7 @@ jobs:
|
||||
|
||||
- name: Set LLVM Environment Variables
|
||||
run: |
|
||||
echo "LLVM_SYS_181_PREFIX=$(pwd)/llvm-x86_64-unknown-linux-gnu" >> $GITHUB_ENV
|
||||
echo "LLVM_SYS_211_PREFIX=$(pwd)/llvm-x86_64-unknown-linux-gnu" >> $GITHUB_ENV
|
||||
echo "REVIVE_LLVM_TARGET_PREFIX=$(pwd)/llvm-wasm32-unknown-emscripten" >> $GITHUB_ENV
|
||||
|
||||
- name: Build Revive
|
||||
|
||||
@@ -38,7 +38,7 @@ jobs:
|
||||
|
||||
- name: Set LLVM Environment Variables
|
||||
run: |
|
||||
echo "LLVM_SYS_181_PREFIX=$(pwd)/llvm-x86_64-unknown-linux-gnu" >> $GITHUB_ENV
|
||||
echo "LLVM_SYS_211_PREFIX=$(pwd)/llvm-x86_64-unknown-linux-gnu" >> $GITHUB_ENV
|
||||
|
||||
- name: Install Geth
|
||||
run: |
|
||||
|
||||
Reference in new issue
Block a user