Skip to content

Update scripts to OpenVicProject/scripts#9 #65

Update scripts to OpenVicProject/scripts#9

Update scripts to OpenVicProject/scripts#9 #65

Workflow file for this run

name: Builds
on: [push, pull_request]
env:
GH_BASE_BRANCH: master
concurrency:
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-macos
cancel-in-progress: true
jobs:
build:
runs-on: ${{matrix.os}}
name: ${{matrix.name}}
permissions: write-all
strategy:
fail-fast: false
matrix:
include:
- identifier: windows-debug
os: windows-latest
name: 🏁 Windows Debug
target: template_debug
platform: windows
arch: x86_64
- identifier: windows-release
os: windows-latest
name: 🏁 Windows Release
target: template_release
platform: windows
arch: x86_64
- identifier: macos-debug
os: macos-latest
name: 🍎 macOS (universal) Debug
target: template_debug
platform: macos
arch: universal
- identifier: macos-release
os: macos-latest
name: 🍎 macOS (universal) Release
target: template_release
platform: macos
arch: universal
- identifier: linux-debug
os: ubuntu-latest
name: 🐧 Linux Debug
runner: ubuntu-20.04
target: template_debug
platform: linux
arch: x86_64
- identifier: linux-release
os: ubuntu-latest
name: 🐧 Linux Release
runner: ubuntu-20.04
target: template_release
platform: linux
arch: x86_64
steps:
- name: Checkout project
uses: actions/[email protected]
with:
submodules: recursive
- name: Setup build cache
uses: OpenVicProject/openvic-cache@master
with:
cache-name: ${{ matrix.identifier }}
base-branch: ${{ env.GH_BASE_BRANCH }}
continue-on-error: true
- name: Set up Python
uses: actions/[email protected]
with:
python-version: "3.x"
- name: Set up SCons
shell: bash
run: |
python -c "import sys; print(sys.version)"
python -m pip install scons
scons --version
- name: Linux dependencies
if: ${{ matrix.platform == 'linux' }}
run: |
sudo apt-get update -qq
sudo apt-get install -qqq build-essential pkg-config
g++ --version
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 12
sudo update-alternatives --set g++ /usr/bin/g++-12
g++ --version
- name: Compile with SCons
uses: OpenVicProject/openvic-build@master
with:
platform: ${{ matrix.platform }}
target: ${{ matrix.target }}
sconsflags: arch=${{ matrix.arch }} build_lvdf_library=yes
- name: Delete compilation files
if: ${{ matrix.platform == 'windows' }}
run: |
Remove-Item bin/* -Include *.exp,*.pdb -Force
- name: Upload library artifact
uses: actions/[email protected]
with:
name: ${{ github.event.repository.name }}-${{ matrix.identifier }}-library
path: |
${{ github.workspace }}/bin/liblexy-vdf.*
- name: Upload executable artifact
uses: actions/[email protected]
with:
name: ${{ github.event.repository.name }}-${{ matrix.identifier }}-executable
path: |
${{ github.workspace }}/bin/lexy-vdf.headless.*
- name: Archive Release
uses: thedoctor0/[email protected]
with:
type: "zip"
filename: "../../../liblexy-vdf.${{ matrix.platform }}.${{ matrix.arch }}.zip"
directory: "${{ github.workspace }}/bin/"
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
- name: Create and upload asset
uses: ncipollo/[email protected]
with:
allowUpdates: true
artifacts: "liblexy-vdf.${{ matrix.platform }}.${{ matrix.arch }}.zip"
omitNameDuringUpdate: true
omitBodyDuringUpdate: true
token: ${{ secrets.GITHUB_TOKEN }}
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
merge-library-files:
runs-on: ubuntu-latest
needs: build
name: πŸ“š Merge Library Files
steps:
- name: Merge Artifacts
uses: actions/upload-artifact/[email protected]
with:
delete-merged: true
name: ${{ github.event.repository.name }}-library
pattern: ${{ github.event.repository.name }}-*-library