Skip to content

Implement Population Menu #1057

Implement Population Menu

Implement Population Menu #1057

Workflow file for this run

name: Builds
on:
push:
paths-ignore:
- '.github/**'
- '.vscode/**'
- 'docs/**'
- 'LICENSE-EXCEPTIONS.md'
- 'LICENSE.md'
- 'README.md'
pull_request:
paths-ignore:
- '.github/**'
- '.vscode/**'
- 'docs/**'
- 'LICENSE-EXCEPTIONS.md'
- 'LICENSE.md'
- 'README.md'
env:
GODOT_BASE_DOWNLOAD_URL: https://github.com/godotengine/godot
GODOT_VERSION: 4.2.1
GODOT_VERSION_TYPE: stable
OPENVIC_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/checkout@v4.1.1
with:
submodules: recursive
- name: Setup OpenVic build cache
uses: OpenVicProject/openvic-cache@master
with:
cache-name: ${{ matrix.identifier }}
base-branch: ${{ env.OPENVIC_BASE_BRANCH }}
continue-on-error: true
- name: Setup Environment
uses: OpenVicProject/openvic-env@master
- name: Set up Python
uses: actions/setup-python@v5.0.0
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: Setup MinGW for Windows/MinGW build
if: ${{ matrix.platform == 'windows' }}
uses: OpenVicProject/mingw-cache@master
- name: Compile Extension
uses: OpenVicProject/openvic-build@master
with:
platform: ${{ matrix.platform }}
target: ${{ matrix.target }}
bin-dir: "game/bin/"
sconsflags: arch=${{ matrix.arch }}
- name: Delete compilation files
if: ${{ matrix.platform == 'windows' }}
run: |
Remove-Item game/bin/openvic/* -Include *.exp,*.lib,*.pdb -Force
- name: Upload extension artifact
uses: actions/upload-artifact@v4.3.0
with:
name: ${{ github.event.repository.name }}-${{ matrix.identifier }}-extension
path: |
${{ github.workspace }}/game/bin/openvic/*
godot-debug-checks:
runs-on: ubuntu-latest
needs: [build]
name: Peform Godot Debug Checks
steps:
- name: Checkout project
uses: actions/checkout@v4.1.1
- name: Setup Environment
uses: OpenVicProject/openvic-env@master
- name: Download artifact
uses: actions/download-artifact@v4.1.1
with:
path: game/bin/openvic
pattern: ${{ github.event.repository.name }}-*-extension
merge-multiple: true
- name: Export pack file
id: export_game
uses: Spartan322/godot-export@master
with:
godot_executable_download_url: ${{env.GODOT_LINUX_URL}}
godot_export_templates_download_url: ${{env.GODOT_TEMPLATE_URL}}
relative_project_path: ./game
export_as_pack: true
export_debug: true
cache: true
relative_export_path: ./game/export
- run: mv "./game/export/LinuxX11 x86_64/OpenVic.x86_64.pck" ./game/export/${{ github.event.repository.name }}.pck
- name: Upload pack artifact
uses: actions/upload-artifact@v4.3.0
with:
name: ${{ github.event.repository.name }}-debug-pck
compression-level: 9
path: |
./game/export/${{ github.event.repository.name }}.pck
export:
runs-on: ubuntu-latest
needs: [build]
permissions: write-all
name: Export
steps:
- name: Checkout project
uses: actions/checkout@v4.1.1
- name: Setup Environment
uses: OpenVicProject/openvic-env@master
- name: Download artifact
uses: actions/download-artifact@v4.1.1
with:
path: game/bin/openvic
pattern: ${{ github.event.repository.name }}-*-extension
merge-multiple: true
- name: Install WINE
id: wine_install
run: |
sudo apt update
sudo apt install --fix-missing wine64
echo "WINE_PATH=$(which wine64)" >> $GITHUB_OUTPUT
- name: Export game
id: export_game
uses: Spartan322/godot-export@master
with:
godot_executable_download_url: ${{env.GODOT_LINUX_URL}}
godot_export_templates_download_url: ${{env.GODOT_TEMPLATE_URL}}
relative_project_path: ./game
archive_output: true
cache: true
wine_path: ${{ steps.wine_install.outputs.WINE_PATH }}
- name: Create release
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
uses: ncipollo/release-action@v1.13.0
with:
allowUpdates: true
omitNameDuringUpdate: true
omitBodyDuringUpdate: true
token: ${{ secrets.GITHUB_TOKEN }}
artifacts: ${{ steps.export_game.outputs.archive_directory }}/*
- name: Upload artifact
uses: actions/upload-artifact@v4.3.0
with:
name: ${{ github.event.repository.name }}
retention-days: 30
compression-level: 9
path: |
${{ steps.export_game.outputs.archive_directory }}
merge-files:
runs-on: ubuntu-latest
needs: [export]
name: πŸ“š Merge Files
steps:
- name: Download extension artifacts
uses: actions/download-artifact@v4.1.1
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
with:
path: artifacts
pattern: ${{ github.event.repository.name }}-*-extension
merge-multiple: true
- name: Merge extension artifacts
uses: actions/upload-artifact/merge@v4.3.0
with:
delete-merged: true
name: ${{ github.event.repository.name }}-extension
pattern: ${{ github.event.repository.name }}-*-extension
- name: Archive release
uses: thedoctor0/zip-release@0.7.6
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
with:
type: "zip"
filename: "release/libopenvic.zip"
directory: "${{ github.workspace }}/artifacts"
- name: Upload extension release asset
uses: ncipollo/release-action@v1.13.0
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
with:
allowUpdates: true
omitNameDuringUpdate: true
omitBodyDuringUpdate: true
token: ${{ secrets.GITHUB_TOKEN }}
artifacts: release/*