111 lines
4.6 KiB
YAML
111 lines
4.6 KiB
YAML
name: build
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- '*'
|
|
tags:
|
|
- 'v*.*'
|
|
- 'snapshot-*'
|
|
pull_request:
|
|
branches:
|
|
- '*'
|
|
|
|
jobs:
|
|
release:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-python@v2
|
|
- id: get_type
|
|
run: python ./.github/get-type.py ${{ github.ref }}
|
|
- id: create_release
|
|
if: steps.get_type.outputs.TYPE != 'dev'
|
|
uses: actions/create-release@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
tag_name: ${{ github.ref }}
|
|
release_name: ${{ steps.get_type.outputs.NAME }}
|
|
draft: true
|
|
prerelease: false
|
|
- run: echo "${{ steps.create_release.outputs.upload_url }}" > release_url.txt
|
|
- uses: actions/upload-artifact@v1
|
|
with:
|
|
name: release_url
|
|
path: release_url.txt
|
|
build:
|
|
runs-on: ${{ matrix.os }}
|
|
needs: [release]
|
|
strategy:
|
|
matrix:
|
|
# | lin-x86_64 | mac-x86_64 | win-x86_64 | lin-i686 | mac-i686 | win-i686 |
|
|
# --------------+------------+------------+------------+------------+------------+------------+
|
|
# gcc-static | | | NO | NO | NO | NO |
|
|
# msvc-static | NO | NO | | NO | NO | |
|
|
# mingw-static | NO | NO | NO | NO | NO | NO [1] |
|
|
# gcc-dynamic | | | NO | NO | NO | NO |
|
|
# msvc-dynamic | NO | NO | | NO | NO | |
|
|
# mingw-dynamic | NO | NO | NO | NO | NO | NO |
|
|
#
|
|
# [1] I don't currently care enough about mingw to figure out how to do this.
|
|
platform_short: [lin, mac, win]
|
|
toolset_short: [gcc, msvc, mingw]
|
|
machine_short: [x86_64, i686]
|
|
static_dynamic: [static, dynamic]
|
|
exclude:
|
|
- toolset_short: mingw
|
|
- machine_short: i686
|
|
platform_short: lin
|
|
- machine_short: i686
|
|
platform_short: mac
|
|
- toolset_short: msvc
|
|
platform_short: lin
|
|
- toolset_short: msvc
|
|
platform_short: mac
|
|
- toolset_short: gcc
|
|
platform_short: win
|
|
include:
|
|
- platform_short: lin
|
|
os: ubuntu-latest
|
|
suffix: ''
|
|
- platform_short: mac
|
|
os: macos-latest
|
|
suffix: ''
|
|
- platform_short: win
|
|
os: windows-latest
|
|
suffix: '.exe'
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-python@v2
|
|
- id: get_type
|
|
run: python ./.github/get-type.py ${{ github.ref }}
|
|
- uses: actions/download-artifact@v1
|
|
with:
|
|
name: release_url
|
|
- id: get_release_info
|
|
if: steps.get_type.outputs.TYPE != 'dev'
|
|
run: bash -c "./.github/get-release-info.sh" ## gg github, this is terrible
|
|
- if: matrix.platform_short == 'mac'
|
|
run: brew install pkg-config
|
|
- if: matrix.platform_short == 'mac' && matrix.static_dynamic != 'static'
|
|
run: brew install luajit curl fftw zlib sdl2
|
|
- if: matrix.platform_short == 'lin' && matrix.static_dynamic != 'static'
|
|
run: sudo apt update && sudo apt install libluajit-5.1-dev libcurl4-openssl-dev libfftw3-dev zlib1g-dev libsdl2-dev
|
|
- run: python -m pip install meson ninja
|
|
- run: bash -c 'PLATFORM_SHORT=${{ matrix.platform_short }} MACHINE_SHORT=${{ matrix.machine_short }} TOOLSET_SHORT=${{ matrix.toolset_short }} STATIC_DYNAMIC=${{ matrix.static_dynamic }} RELTYPECFG=${{ steps.get_type.outputs.RELTYPECFG }} ./.github/build.sh'
|
|
- uses: actions/upload-release-asset@v1
|
|
if: steps.get_type.outputs.TYPE != 'dev' && matrix.static_dynamic == 'static'
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ steps.get_release_info.outputs.upload_url }}
|
|
asset_path: powder${{ matrix.suffix }}
|
|
asset_name: powder-${{ steps.get_type.outputs.NAME }}-${{ matrix.machine_short }}-${{ matrix.platform_short }}-${{ matrix.toolset_short }}-${{ matrix.static_dynamic }}${{ matrix.suffix }}
|
|
asset_content_type: application/zip
|
|
- uses: actions/upload-artifact@v2
|
|
if: steps.get_type.outputs.TYPE == 'dev' && matrix.static_dynamic == 'static'
|
|
with:
|
|
path: powder${{ matrix.suffix }}
|
|
name: powder-${{ steps.get_type.outputs.NAME }}-${{ matrix.machine_short }}-${{ matrix.platform_short }}-${{ matrix.toolset_short }}-${{ matrix.static_dynamic }}${{ matrix.suffix }}
|