mirror of
https://github.com/pezkuwichain/revive.git
synced 2026-04-22 06:48:03 +00:00
7f81f37e0c
Pre-eliminary support for LLVM releases and resolc binary releases by streamlining the build process for all supported hosts platforms. - Introduce the revive-llvm-builder crate with the revive-llvm builder utilty. - Do not rely on the LLVM dependency in $PATH to decouple the system LLVM installation from the LLVM host dependency. - Fix the emscripten build by decoupling the host and native LLVM dependencies. Thus allowing a single LLVM emscripten release that can be used on any host platform. - An example Dockerfile building an alpine container with a fully statically linked resolc ELF binary. - Remove the Debian builder utilities and workflow.
56 lines
1.3 KiB
YAML
56 lines
1.3 KiB
YAML
name: Build
|
|
|
|
on:
|
|
push:
|
|
branches: ["main"]
|
|
pull_request:
|
|
branches: ["main"]
|
|
|
|
env:
|
|
CARGO_TERM_COLOR: always
|
|
|
|
jobs:
|
|
build-ubuntu-x86:
|
|
runs-on: ubuntu-24.04
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install solc
|
|
run: |
|
|
mkdir -p solc
|
|
curl -sSL --output solc/solc https://github.com/ethereum/solidity/releases/download/v0.8.28/solc-static-linux
|
|
chmod +x solc/solc
|
|
echo "$(pwd)/solc/" >> $GITHUB_PATH
|
|
|
|
- name: Install LLVM
|
|
run: |
|
|
curl -sSL --output llvm.tar.xz https://github.com/paritytech/revive/releases/download/v0.1.0-dev.7/clang+llvm-18.1.8-x86_64-linux-gnu-ubuntu-24.04.tar.xz
|
|
mkdir llvm18
|
|
tar Jxf llvm.tar.xz -C llvm18/
|
|
echo "LLVM_SYS_181_PREFIX=$(pwd)/llvm18" >> $GITHUB_ENV
|
|
|
|
- name: Install apt dependencies
|
|
run: |
|
|
sudo add-apt-repository -y ppa:ethereum/ethereum
|
|
sudo apt update
|
|
sudo apt install -y ethereum
|
|
|
|
- name: Format
|
|
run: make format
|
|
|
|
- name: Clippy
|
|
run: make clippy
|
|
|
|
- name: Test cargo workspace
|
|
run: make test-workspace
|
|
|
|
- name: Test CLI
|
|
run: make test-cli
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ${{ github.job }}-resolc
|
|
path: ./target/release/resolc
|
|
retention-days: 1
|