blisp/.github/workflows/build.yml

143 lines
4.4 KiB
YAML
Raw Normal View History

2023-01-21 13:58:49 +00:00
name: Build
on: [push, pull_request]
jobs:
build-windows:
2023-01-21 14:14:50 +00:00
runs-on: windows-2022
2023-01-21 13:58:49 +00:00
defaults:
run:
shell: cmd
steps:
- uses: actions/checkout@v2
- uses: lukka/get-cmake@latest
- name: Build blisp tool
run: |
git submodule update --init --recursive
mkdir build
cd build
cmake .. -DBLISP_BUILD_CLI=ON -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release
- name: Upload results
uses: actions/upload-artifact@v2
with:
name: blisp Windows x64 build
path: |
2023-01-21 14:14:50 +00:00
build/tools/blisp/Release/blisp.exe
2023-01-21 13:58:49 +00:00
if-no-files-found: error
build-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- uses: lukka/get-cmake@latest
- name: Build blisp tool
run: |
git submodule update --init --recursive
mkdir build
cd build
cmake .. -DBLISP_BUILD_CLI=ON -DCMAKE_BUILD_TYPE=Release
cmake --build .
- name: Upload results
uses: actions/upload-artifact@v2
with:
name: blisp macOS x64 build
path: |
build/tools/blisp/blisp
if-no-files-found: error
build-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: lukka/get-cmake@latest
- name: Build blisp tool
run: |
git submodule update --init --recursive
mkdir build
cd build
cmake .. -DBLISP_BUILD_CLI=ON -DCMAKE_BUILD_TYPE=Release
cmake --build .
- name: Upload results
uses: actions/upload-artifact@v2
with:
name: blisp Linux x64 build
path: |
build/tools/blisp/blisp
if-no-files-found: error
2023-05-08 22:25:33 +00:00
build-linux-alternative-arch:
runs-on: ubuntu-latest
name: Build on ${{ matrix.distro }} ${{ matrix.arch }}
# Run steps on a matrix of 4 arch/distro combinations
strategy:
matrix:
include:
- arch: aarch64
distro: ubuntu_latest
- arch: armv7
distro: ubuntu_latest
- arch: riscv64
distro: ubuntu_latest
steps:
- uses: actions/checkout@v3
- uses: uraimo/run-on-arch-action@v2
name: Build artifact
id: build
with:
arch: ${{ matrix.arch }}
distro: ${{ matrix.distro }}
# Create an artifacts directory
setup: |
mkdir -p "${PWD}/artifacts"
# Mount the artifacts directory as /artifacts in the container
dockerRunArgs: |
--volume "${PWD}/artifacts:/artifacts"
# Pass some environment variables to the container
env: | # YAML, but pipe character is necessary
artifact_name: blisp-${{ matrix.distro }}_${{ matrix.arch }}
# The shell to run commands with in the container
shell: /bin/sh
# Install some dependencies in the container. This speeds up builds if
# you are also using githubToken. Any dependencies installed here will
# be part of the container image that gets cached, so subsequent
# builds don't have to re-install them. The image layer is cached
# publicly in your project's package repository, so it is vital that
# no secrets are present in the container state or logs.
install: |
case "${{ matrix.distro }}" in
ubuntu*|jessie|stretch|buster|bullseye)
apt-get update -q -y
apt-get install -q -y git cmake build-essential
;;
esac
# Produce a binary artifact and place it in the mounted volume
run: |
git submodule update --init --recursive
mkdir build
cd build
cmake .. -DBLISP_BUILD_CLI=ON -DCMAKE_BUILD_TYPE=Release
cmake --build .
ls -lah build/tools/blisp/
cp build/tools/blisp/blisp "/artifacts/${artifact_name}"
echo "Produced artifact at /artifacts/${artifact_name}"
- name: Show the artifact
# Items placed in /artifacts in the container will be in
# ${PWD}/artifacts on the host.
run: |
ls -al "${PWD}/artifacts"
- name: Upload results
uses: actions/upload-artifact@v2
with:
path: |
build/tools/blisp/*
if-no-files-found: error