| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- on:
- push:
- tags:
- - 'v*'
- name: Build Release Binaries
- jobs:
- linux-x86-64:
- name: Linux x86-64
- runs-on: ubuntu-latest
- container: ghcr.io/hyperledger/solang-llvm:ci
- steps:
- - name: Checkout sources
- uses: actions/checkout@v3.1.0
- with:
- submodules: recursive
- - name: Rust stable
- run: rustup default 1.65.0
- - name: Build
- run: cargo build --verbose --release
- - name: Run tests
- run: cargo test --workspace --verbose --release
- - name: Upload binary
- uses: svenstaro/upload-release-action@v2
- with:
- repo_token: ${{ secrets.GITHUB_TOKEN }}
- file: target/release/solang
- asset_name: solang-linux-x86-64
- tag: ${{ github.ref }}
- linux-arm64:
- name: Linux arm64
- runs-on: linux-arm64
- if: ${{ github.repository_owner == 'hyperledger' }}
- container: ghcr.io/hyperledger/solang-llvm:ci
- steps:
- - name: Checkout sources
- uses: actions/checkout@v3.1.0
- with:
- submodules: recursive
- - name: Rust stable
- run: rustup default 1.65.0
- - name: Build
- run: cargo build --verbose --release
- - name: Run tests
- run: cargo test --workspace --verbose --release
- - name: Upload binary
- uses: svenstaro/upload-release-action@v2
- with:
- repo_token: ${{ secrets.GITHUB_TOKEN }}
- file: target/release/solang
- asset_name: solang-linux-arm64
- tag: ${{ github.ref }}
- windows:
- name: Windows
- runs-on: windows-latest
- steps:
- - name: Checkout sources
- uses: actions/checkout@v3
- with:
- submodules: recursive
- - name: Download LLVM
- run: curl -sSL -o c:\llvm.zip https://github.com/hyperledger/solang-llvm/releases/download/llvm15-0/llvm15.0-win.zip
- - name: Extract LLVM
- run: unzip c:\llvm.zip -d c:/
- - name: Add LLVM to Path
- run: echo "c:\llvm15.0\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8
- - uses: dtolnay/rust-toolchain@1.65.0
- with:
- components: clippy
- - name: Build
- run: cargo build --release --verbose
- - name: Run tests
- run: cargo test --workspace --release --verbose
- - name: Upload binary
- uses: svenstaro/upload-release-action@v2
- with:
- repo_token: ${{ secrets.GITHUB_TOKEN }}
- file: target/release/solang.exe
- asset_name: solang.exe
- tag: ${{ github.ref }}
- mac-arm:
- name: Mac Arm
- runs-on: [self-hosted, macOS, ARM64, MacStadium]
- if: ${{ github.repository_owner == 'hyperledger' }}
- steps:
- - name: Checkout sources
- uses: actions/checkout@v3
- with:
- submodules: recursive
- - uses: dtolnay/rust-toolchain@1.65.0
- - name: Get LLVM
- run: curl -L --output llvm15.0-mac-arm.tar.xz https://github.com/hyperledger/solang-llvm/releases/download/llvm15-0/llvm15.0-mac-arm.tar.xz
- - name: Extract LLVM
- run: tar Jxf llvm15.0-mac-arm.tar.xz
- - name: Add LLVM to Path
- run: echo "$(pwd)/llvm15.0/bin" >> $GITHUB_PATH
- - name: Build
- run: cargo build --release --verbose
- - name: Run tests
- run: cargo test --workspace --release --verbose
- - name: Upload binary
- uses: svenstaro/upload-release-action@v2
- with:
- repo_token: ${{ secrets.GITHUB_TOKEN }}
- file: target/release/solang
- asset_name: solang-mac-arm
- tag: ${{ github.ref }}
- mac-intel:
- name: Mac Intel
- # The Hyperledger self-hosted intel macs have the label macos-latest
- # and run macos 12. We don't want to build llvm on macos 12, because
- # then it can't be used on macos 11.
- runs-on: macos-11
- steps:
- - name: Checkout sources
- uses: actions/checkout@v3
- with:
- submodules: recursive
- - uses: dtolnay/rust-toolchain@1.65.0
- - name: Get LLVM
- run: wget -q -O llvm15.0-mac-intel.tar.xz https://github.com/hyperledger/solang-llvm/releases/download/llvm15-0/llvm15.0-mac-intel.tar.xz
- - name: Extract LLVM
- run: tar Jxf llvm15.0-mac-intel.tar.xz
- - name: Add LLVM to Path
- run: echo "$(pwd)/llvm15.0/bin" >> $GITHUB_PATH
- - name: Build
- run: cargo build --release --verbose
- - name: Run tests
- run: cargo test --workspace --release --verbose
- - name: Upload binary
- uses: svenstaro/upload-release-action@v2
- with:
- repo_token: ${{ secrets.GITHUB_TOKEN }}
- file: target/release/solang
- asset_name: solang-mac-intel
- tag: ${{ github.ref }}
- mac-universal:
- name: Mac Universal Binary
- runs-on: macos-latest
- needs: [mac-arm, mac-intel]
- steps:
- - run: |
- curl -L --output solang-mac-intel https://github.com/hyperledger/solang/releases/download/${GITHUB_REF/refs\/tags\//}/solang-mac-intel
- curl -L --output solang-mac-arm https://github.com/hyperledger/solang/releases/download/${GITHUB_REF/refs\/tags\//}/solang-mac-arm
- lipo -create -output solang-mac solang-mac-intel solang-mac-arm
- - name: Upload binary
- uses: svenstaro/upload-release-action@v2
- with:
- repo_token: ${{ secrets.GITHUB_TOKEN }}
- file: solang-mac
- asset_name: solang-mac
- tag: ${{ github.ref }}
- container-multiarch:
- name: Multiarch Container Image
- runs-on: linux-arm64
- if: ${{ github.repository_owner == 'hyperledger' }}
- steps:
- - name: Checkout sources
- uses: actions/checkout@v3
- - run: |
- echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin
- docker buildx build . \
- --push \
- --provenance=false \
- --tag ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_REF/refs\/tags\//} \
- --platform linux/arm64,linux/amd64 \
- --label org.opencontainers.image.description="Solidity Compiler for Solana and Substrate version $(git describe --tags)"
|