Separate msvc build script and add workflow for x64 windows #775
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build EDOPro-core | ||
on: [push, pull_request] | ||
env: | ||
BUILD_CONFIG: release | ||
DEPENDENCIES_BASE_URL: https://github.com/edo9300/edopro-vcpkg-cache/releases/download/20220927 | ||
DEPLOY_DIR: ocgcore | ||
DEPLOY_REPO: ${{ secrets.DEPLOY_REPO }} | ||
DEPLOY_TOKEN: ${{ secrets.DEPLOY_TOKEN }} | ||
jobs: | ||
Windows-visual-studio: | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
arch: [Win32, x64] | ||
include: | ||
- arch: Win32 | ||
deploy-branch: travis-core-windows | ||
- arch: x64 | ||
deploy-branch: travis-core-windows-x64 | ||
runs-on: windows-2019 | ||
env: | ||
DEPLOY_BRANCH: ${{ matrix.deploy-branch }} | ||
TRAVIS_OS_NAME: windows | ||
VISUAL_STUDIO_ARCH: ${{ matrix.arch }} | ||
VISUAL_STUDIO_VERSION: vs2019 | ||
PREMAKE_FLAGS: --oldwindows=true | ||
steps: | ||
- name: Add msbuild to PATH | ||
uses: microsoft/setup-msbuild@v2 | ||
- uses: actions/checkout@v1 | ||
with: | ||
fetch-depth: 1 | ||
- name: Install lua | ||
shell: bash | ||
run: ./scripts/install-lua.sh | ||
- name: Install premake | ||
shell: bash | ||
run: ./scripts/install-premake5.sh | ||
- name: Build | ||
shell: bash | ||
run: ./scripts/build-premake5-msvc.sh | ||
- name: Predeploy | ||
shell: bash | ||
run: ./scripts/predeploy.sh | ||
- name: Deploy | ||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | ||
shell: bash | ||
run: ./scripts/deploy.sh | ||
- name: Log Failure | ||
uses: sarisia/actions-status-discord@v1 | ||
if: failure() | ||
with: | ||
nodetail: true | ||
description: | | ||
[[${{ github.event.repository.name }}] ${{ github.job }} failed on ${{ github.ref }}](https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}) | ||
title: | | ||
color: 0xff0000 | ||
webhook: ${{ secrets.DISCORD_WEBHOOK }} | ||
avatar_url: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png | ||
username: Github | ||
Linux-musl: | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
deploy-branch: [travis-core-linux-musl, travis-core-linux-musl-apicheck, travis-core-linux-musl-aarch64] | ||
include: | ||
- deploy-branch: travis-core-linux-musl | ||
docker-image: x86_64-linux-musl | ||
apicheck: 0 | ||
- deploy-branch: travis-core-linux-musl-apicheck | ||
docker-image: x86_64-linux-musl | ||
apicheck: 1 | ||
- deploy-branch: travis-core-linux-musl-aarch64 | ||
docker-image: aarch64-linux-musl | ||
apicheck: 0 | ||
runs-on: ubuntu-latest | ||
env: | ||
DEPLOY_BRANCH: ${{ matrix.deploy-branch }} | ||
TRAVIS_OS_NAME: linux | ||
CXX: musl-g++ | ||
steps: | ||
- uses: actions/checkout@v1 | ||
with: | ||
fetch-depth: 1 | ||
- name: Setup alpine docker image | ||
shell: bash | ||
run: | | ||
sudo docker build --build-arg target_arch=${{ matrix.docker-image }} . -t alpine-cmake -f ./scripts/Dockerfile && | ||
sudo docker run -dt --rm --name alpine -v $PWD:/core -w="/core" alpine-cmake | ||
- name: Install lua | ||
shell: bash | ||
env: | ||
LUA_APICHECK: ${{ matrix.apicheck }} | ||
run: ./scripts/install-lua.sh | ||
- name: Install premake | ||
shell: bash | ||
run: ./scripts/install-premake5.sh | ||
- name: Build | ||
shell: bash | ||
run: | | ||
./premake5 gmake2 | ||
sudo docker exec -t -w="/core" alpine make -Cbuild ocgcoreshared -j$(nproc) config=release LDFLAGS="-static -Wl,-Bstatic" && | ||
sudo chown -R $USER bin | ||
- name: Predeploy | ||
shell: bash | ||
run: ./scripts/predeploy.sh | ||
- name: Deploy | ||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | ||
shell: bash | ||
run: ./scripts/deploy.sh | ||
- name: Log Failure | ||
uses: sarisia/actions-status-discord@v1 | ||
if: failure() | ||
with: | ||
nodetail: true | ||
description: | | ||
[[${{ github.event.repository.name }}] ${{ github.job }} failed on ${{ github.ref }}](https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}) | ||
title: | | ||
color: 0xff0000 | ||
webhook: ${{ secrets.DISCORD_WEBHOOK }} | ||
avatar_url: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png | ||
username: Github | ||
Android: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
ndk-version: [21.4.7075529, 16.1.4479499, 26.1.10909125] | ||
include: | ||
- ndk-version: 21.4.7075529 | ||
deploy-branch: travis-core-android | ||
- docker-image: 16.1.4479499 | ||
deploy-branch: travis-core-android-ndk-16 | ||
- docker-image: 26.1.10909125 | ||
deploy-branch: travis-core-android-ndk-26 | ||
env: | ||
DEPLOY_BRANCH: ${{ matrix.deploy-branch }} | ||
NDK_VERSION: ${{ matrix.ndk-version }} | ||
TRAVIS_OS_NAME: android | ||
OS_NAME: linux | ||
steps: | ||
- name: Install old ncurses library for ndk 16 | ||
if: matrix.ndk-version == '16.1.4479499' | ||
run: | | ||
sudo add-apt-repository universe | ||
sudo apt-get install libncurses5 | ||
- uses: actions/checkout@v1 | ||
with: | ||
fetch-depth: 1 | ||
- name: Install lua | ||
shell: bash | ||
run: ./scripts/install-lua.sh | ||
- name: Build | ||
shell: bash | ||
run: ./scripts/build-android.sh | ||
- name: Predeploy | ||
shell: bash | ||
run: ./scripts/predeploy.sh | ||
- name: Deploy | ||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | ||
shell: bash | ||
run: ./scripts/deploy.sh | ||
- name: Log Failure | ||
uses: sarisia/actions-status-discord@v1 | ||
if: failure() | ||
with: | ||
nodetail: true | ||
description: | | ||
[[${{ github.event.repository.name }}] ${{ github.job }} failed on ${{ github.ref }}](https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}) | ||
title: | | ||
color: 0xff0000 | ||
webhook: ${{ secrets.DISCORD_WEBHOOK }} | ||
avatar_url: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png | ||
username: Github | ||
Mac-os: | ||
runs-on: macos-11 | ||
env: | ||
DEPLOY_BRANCH: travis-core-osx | ||
TRAVIS_OS_NAME: osx | ||
DEVELOPER_DIR: /Applications/Xcode_11.7.app/Contents/Developer | ||
MACOSX_DEPLOYMENT_TARGET: 10.11 | ||
steps: | ||
- uses: actions/checkout@v1 | ||
with: | ||
fetch-depth: 1 | ||
- name: Replace not compatible Xcode Command Line Tools | ||
shell: bash | ||
run: | | ||
sudo rm -rf /Library/Developer/CommandLineTools | ||
xcode-select --install | ||
- name: Install lua | ||
shell: bash | ||
run: ./scripts/install-lua.sh | ||
- name: Install premake | ||
shell: bash | ||
run: ./scripts/install-premake5.sh | ||
- name: Build | ||
shell: bash | ||
run: ./scripts/build-premake5.sh | ||
- name: Predeploy | ||
shell: bash | ||
run: ./scripts/predeploy.sh | ||
- name: Deploy | ||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | ||
shell: bash | ||
run: ./scripts/deploy.sh | ||
- uses: actions/upload-artifact@v4 | ||
with: | ||
name: osx | ||
path: ocgcore/libocgcore.dylib | ||
- name: Log Failure | ||
uses: sarisia/actions-status-discord@v1 | ||
if: failure() | ||
with: | ||
nodetail: true | ||
description: | | ||
[[${{ github.event.repository.name }}] ${{ github.job }} failed on ${{ github.ref }}](https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}) | ||
title: | | ||
color: 0xff0000 | ||
webhook: ${{ secrets.DISCORD_WEBHOOK }} | ||
avatar_url: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png | ||
username: Github | ||
Mac-os-cctools: | ||
runs-on: ubuntu-latest | ||
env: | ||
DEPLOY_BRANCH: travis-core-osx-cctools | ||
TRAVIS_OS_NAME: linux | ||
TARGET_OS: osx | ||
CC: /opt/cctools/bin/x86_64-macosx-clang | ||
CXX: /opt/cctools/bin/x86_64-macosx-clang++ | ||
RANLIB: /opt/cctools/bin/x86_64-apple-darwin11-ranlib | ||
AR: /opt/cctools/bin/arm-apple-darwin11-ar rcu | ||
steps: | ||
- uses: actions/checkout@v1 | ||
with: | ||
fetch-depth: 1 | ||
- name: Download cctools | ||
run: | | ||
cd /opt | ||
wget https://github.com/edo9300/cctools-build/releases/download/preview/cctools.tar.xz | ||
tar xf cctools.tar.xz | ||
cd cctools/bin | ||
- name: Install lua | ||
shell: bash | ||
run: ./scripts/install-lua.sh | ||
- name: Install premake | ||
shell: bash | ||
run: ./scripts/install-premake5.sh | ||
- name: Build | ||
shell: bash | ||
run: ./scripts/build-premake5.sh | ||
- name: Predeploy | ||
shell: bash | ||
run: ./scripts/predeploy.sh | ||
- name: Deploy | ||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | ||
shell: bash | ||
run: ./scripts/deploy.sh | ||
- uses: actions/upload-artifact@v4 | ||
with: | ||
name: osx-cctools | ||
path: ocgcore/libocgcore.dylib | ||
- name: Log Failure | ||
uses: sarisia/actions-status-discord@v1 | ||
if: failure() | ||
with: | ||
nodetail: true | ||
description: | | ||
[[${{ github.event.repository.name }}] ${{ github.job }} failed on ${{ github.ref }}](https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}) | ||
title: | | ||
color: 0xff0000 | ||
webhook: ${{ secrets.DISCORD_WEBHOOK }} | ||
avatar_url: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png | ||
username: Github | ||
Mac-os-aarch64: | ||
runs-on: macos-latest | ||
env: | ||
DEPLOY_BRANCH: travis-core-osx-aarch64 | ||
TRAVIS_OS_NAME: osx | ||
MACOSX_DEPLOYMENT_TARGET: 11.0 | ||
CXXFLAGS: -target arm64-apple-macos11 | ||
CFLAGS: -target arm64-apple-macos11 | ||
LDFLAGS: -target arm64-apple-macos11 | ||
SDKROOT: /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.3.sdk | ||
steps: | ||
- uses: actions/checkout@v1 | ||
with: | ||
fetch-depth: 1 | ||
- name: Install lua | ||
shell: bash | ||
run: ./scripts/install-lua.sh | ||
- name: Install premake | ||
shell: bash | ||
run: ./scripts/install-premake5.sh | ||
- name: Build | ||
shell: bash | ||
run: ./scripts/build-premake5.sh | ||
- name: Predeploy | ||
shell: bash | ||
run: ./scripts/predeploy.sh | ||
- name: Deploy | ||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | ||
shell: bash | ||
run: ./scripts/deploy.sh | ||
- uses: actions/upload-artifact@v4 | ||
with: | ||
name: osx-aarch64 | ||
path: ocgcore/libocgcore.dylib | ||
- name: Log Failure | ||
uses: sarisia/actions-status-discord@v1 | ||
if: failure() | ||
with: | ||
nodetail: true | ||
description: | | ||
[[${{ github.event.repository.name }}] ${{ github.job }} failed on ${{ github.ref }}](https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}) | ||
title: | | ||
color: 0xff0000 | ||
webhook: ${{ secrets.DISCORD_WEBHOOK }} | ||
avatar_url: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png | ||
username: Github | ||
Mac-os-aarch64-cctools: | ||
runs-on: ubuntu-latest | ||
env: | ||
DEPLOY_BRANCH: travis-core-osx-aarch64-cctools | ||
TRAVIS_OS_NAME: linux | ||
TARGET_OS: osx | ||
CC: /opt/cctools/bin/arm64-macosx-clang | ||
CXX: /opt/cctools/bin/arm64-macosx-clang++ | ||
RANLIB: /opt/cctools/bin/arm-apple-darwin11-ranlib | ||
AR: /opt/cctools/bin/arm-apple-darwin11-ar rcu | ||
steps: | ||
- uses: actions/checkout@v1 | ||
with: | ||
fetch-depth: 1 | ||
- name: Download cctools | ||
run: | | ||
cd /opt | ||
wget https://github.com/edo9300/cctools-build/releases/download/preview/cctools.tar.xz | ||
tar xf cctools.tar.xz | ||
cd cctools/bin | ||
- name: Install lua | ||
shell: bash | ||
run: ./scripts/install-lua.sh | ||
- name: Install premake | ||
shell: bash | ||
run: ./scripts/install-premake5.sh | ||
- name: Build | ||
shell: bash | ||
run: ./scripts/build-premake5.sh | ||
- name: Predeploy | ||
shell: bash | ||
run: ./scripts/predeploy.sh | ||
- name: Deploy | ||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | ||
shell: bash | ||
run: ./scripts/deploy.sh | ||
- uses: actions/upload-artifact@v4 | ||
with: | ||
name: osx-aarch64-cctools | ||
path: ocgcore/libocgcore.dylib | ||
- name: Log Failure | ||
uses: sarisia/actions-status-discord@v1 | ||
if: failure() | ||
with: | ||
nodetail: true | ||
description: | | ||
[[${{ github.event.repository.name }}] ${{ github.job }} failed on ${{ github.ref }}](https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}) | ||
title: | | ||
color: 0xff0000 | ||
webhook: ${{ secrets.DISCORD_WEBHOOK }} | ||
avatar_url: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png | ||
username: Github | ||
Mac-os-universal: | ||
runs-on: macos-latest | ||
env: | ||
DEPLOY_BRANCH: travis-core-osx-universal | ||
needs: [ Mac-os, Mac-os-aarch64 ] | ||
steps: | ||
- uses: actions/checkout@v1 | ||
with: | ||
fetch-depth: 1 | ||
submodules: true | ||
- name: Download osx artifacts | ||
uses: actions/download-artifact@v4 | ||
- name: Merge binaries | ||
shell: bash | ||
run: | | ||
lipo -create -output libocgcore.dylib ./osx-aarch64/libocgcore.dylib ./osx/libocgcore.dylib | ||
- name: Move merged binary | ||
shell: bash | ||
run: | | ||
mkdir -p $DEPLOY_DIR && mv libocgcore.dylib $DEPLOY_DIR | ||
- name: Deploy | ||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | ||
shell: bash | ||
run: ./scripts/deploy.sh | ||
- name: Delete artifacts | ||
uses: geekyeggo/delete-artifact@v4 | ||
with: | ||
name: | | ||
osx-aarch64 | ||
osx | ||
- name: Log Failure | ||
uses: sarisia/actions-status-discord@v1 | ||
if: failure() | ||
with: | ||
nodetail: true | ||
description: | | ||
[[${{ github.event.repository.name }}] ${{ github.job }} failed on ${{ github.ref }}](https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}) | ||
title: | | ||
color: 0xff0000 | ||
webhook: ${{ secrets.DISCORD_WEBHOOK }} | ||
avatar_url: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png | ||
username: Github | ||
Mac-os-universal-cctools: | ||
runs-on: ubuntu-latest | ||
env: | ||
DEPLOY_BRANCH: travis-core-osx-universal-cctools | ||
needs: [ Mac-os-cctools, Mac-os-aarch64-cctools ] | ||
steps: | ||
- uses: actions/checkout@v1 | ||
with: | ||
fetch-depth: 1 | ||
submodules: true | ||
- name: Download lipo binary | ||
run: | | ||
wget https://github.com/edo9300/cctools-build/releases/download/preview/lipo | ||
chmod +x lipo | ||
- name: Download osx artifacts | ||
uses: actions/download-artifact@v4 | ||
- name: Merge binaries | ||
shell: bash | ||
run: | | ||
./lipo -create -output libocgcore.dylib ./osx-aarch64-cctools/libocgcore.dylib ./osx-cctools/libocgcore.dylib | ||
- name: Move merged binary | ||
shell: bash | ||
run: | | ||
mkdir -p $DEPLOY_DIR && mv libocgcore.dylib $DEPLOY_DIR | ||
- name: Deploy | ||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | ||
shell: bash | ||
run: ./scripts/deploy.sh | ||
- name: Delete artifacts | ||
uses: geekyeggo/delete-artifact@v4 | ||
with: | ||
name: | | ||
osx-aarch64-cctools | ||
osx-cctools | ||
- name: Log Failure | ||
uses: sarisia/actions-status-discord@v1 | ||
if: failure() | ||
with: | ||
nodetail: true | ||
description: | | ||
[[${{ github.event.repository.name }}] ${{ github.job }} failed on ${{ github.ref }}](https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}) | ||
title: | | ||
color: 0xff0000 | ||
webhook: ${{ secrets.DISCORD_WEBHOOK }} | ||
avatar_url: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png | ||
username: Github | ||
Notify-success: | ||
runs-on: ubuntu-latest | ||
env: | ||
DEPLOY_BRANCH: travis-osx-universal | ||
TRAVIS_OS_NAME: osx | ||
needs: [ Windows, Linux-musl, Android, Mac-os-universal-cctools ] | ||
steps: | ||
- name: Log Success | ||
uses: sarisia/actions-status-discord@v1 | ||
with: | ||
nodetail: true | ||
description: | | ||
[[${{ github.event.repository.name }}] Build EDOPro-core success on ${{ github.ref }}](https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}) | ||
title: | | ||
color: 0x0f9826 | ||
webhook: ${{ secrets.DISCORD_WEBHOOK }} | ||
avatar_url: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png | ||
username: Github |