name: Build and upload binaries to release
on:
repository_dispatch:
types: [tag-created]
jobs:
release:
name: Build and Release
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
artifact_name: dart-bindgen
asset_name: dart-bindgen-linux-amd64
- os: macos-latest
artifact_name: dart-bindgen
asset_name: dart-bindgen-macos-amd64
- os: windows-latest
artifact_name: dart-bindgen.exe
asset_name: dart-bindgen-windows-amd64.exe
steps:
- name: Cache LLVM and Clang
id: cache-llvm
uses: actions/cache@v2
with:
path: ${{ runner.temp }}/llvm/10.0
key: ${{ matrix.os }}-llvm-10.0
- name: Install LLVM and Clang
uses: KyleMayes/install-llvm-action@v1
with:
version: '10.0'
directory: ${{ runner.temp }}/llvm/10.0
cached: ${{ steps.cache-llvm.outputs.cache-hit }}
- name: Checkout code
uses: actions/checkout@v2
- name: Build CLI (Dynamic)
uses: actions-rs/cargo@v1
env:
LIBCLANG_PATH: ${{ runner.temp }}/llvm/10.0/lib
LLVM_CONFIG_PATH: ${{ runner.temp }}/llvm/10.0/bin/llvm-config
with:
command: build
args: --release --features cli
- name: Upload binary to release
uses: svenstaro/upload-release-action@v1-release
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: target/release/${{ matrix.artifact_name }}
asset_name: ${{ matrix.asset_name }}
tag: ${{ github.event.client_payload.new_version }}