Skip to content

Commit

Permalink
add github actions
Browse files Browse the repository at this point in the history
  • Loading branch information
azhirnov committed Aug 5, 2024
1 parent e4a5313 commit 1dc3085
Show file tree
Hide file tree
Showing 13 changed files with 431 additions and 8 deletions.
122 changes: 122 additions & 0 deletions .github/workflows/android.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
name: Android

on: [push, pull_request, workflow_dispatch]

jobs:
build:
strategy:
matrix:
config: [debug, release]

runs-on: ubuntu-latest
name: Android, ${{matrix.config}}

steps:
- uses: actions/checkout@v4

- name: Set up Java
uses: actions/setup-java@v1
with:
java-version: 17

- name: Create Build Environment
working-directory: ${{github.workspace}}
run: |
cd AE-Bin
wget -O external.zip "https://getfile.dokpub.com/yandex/get/https://disk.yandex.ru/d/li5pOVEwqcS2gA"
unzip external.zip
rm external.zip
cd ../AE/android
chmod +x gradlew
- name: Build 'Tests' ARM-v8
working-directory: ${{github.workspace}}/AE/android
run: ./gradlew :test:buildCMake${{matrix.config}}[arm64-v8a]

- name: Build 'Tests' ARM-v7
working-directory: ${{github.workspace}}/AE/android
run: ./gradlew :test:buildCMake${{matrix.config}}[armeabi-v7a]

- name: Assemple 'Tests'
working-directory: ${{github.workspace}}/AE/android
run: ./gradlew :test:assemble${{matrix.config}}

- uses: actions/upload-artifact@v4
with:
name: AsEn-android-test-${{matrix.config}}
path: ${{github.workspace}}/AE/android/test/build/outputs/apk/${{matrix.config}}/test-${{matrix.config}}.apk

- name: Cleanup 'Tests'
working-directory: ${{github.workspace}}/AE/android
run: |
rm -rf test/build
rm -rf test/.cxx
- name: Build 'RemoteGraphicsDevice' ARM-v8
working-directory: ${{github.workspace}}/AE/android
run: ./gradlew :rg-device:buildCMake${{matrix.config}}[arm64-v8a]

- name: Build 'RemoteGraphicsDevice' ARM-v7
working-directory: ${{github.workspace}}/AE/android
run: ./gradlew :rg-device:buildCMake${{matrix.config}}[armeabi-v7a]

- name: Assemple 'RemoteGraphicsDevice'
working-directory: ${{github.workspace}}/AE/android
run: ./gradlew :rg-device:assemble${{matrix.config}}

- uses: actions/upload-artifact@v4
with:
name: AsEn-android-rg-device-${{matrix.config}}
path: ${{github.workspace}}/AE/android/rg-device/build/outputs/apk/${{matrix.config}}/rg-device-${{matrix.config}}.apk

- name: Cleanup 'RemoteGraphicsDevice'
working-directory: ${{github.workspace}}/AE/android
run: |
rm -rf rg-device/build
rm -rf rg-device/.cxx
- name: Build 'CICD-Client' ARM-v8
working-directory: ${{github.workspace}}/AE/android
run: ./gradlew :cicd:buildCMake${{matrix.config}}[arm64-v8a]

- name: Build 'CICD-Client' ARM-v7
working-directory: ${{github.workspace}}/AE/android
run: ./gradlew :cicd:buildCMake${{matrix.config}}[armeabi-v7a]

- name: Assemple 'CICD-Client'
working-directory: ${{github.workspace}}/AE/android
run: ./gradlew :cicd:assemble${{matrix.config}}

- uses: actions/upload-artifact@v4
with:
name: AsEn-android-cicd-${{matrix.config}}
path: ${{github.workspace}}/AE/android/cicd/build/outputs/apk/${{matrix.config}}/cicd-${{matrix.config}}.apk

- name: Cleanup 'CICD-Client'
working-directory: ${{github.workspace}}/AE/android
run: |
rm -rf cicd/build
rm -rf cicd/.cxx
- name: Build 'Demo' ARM-v8
working-directory: ${{github.workspace}}/AE/android
run: ./gradlew :demo:buildCMake${{matrix.config}}[arm64-v8a]

- name: Build 'Demo' ARM-v7
working-directory: ${{github.workspace}}/AE/android
run: ./gradlew :demo:buildCMake${{matrix.config}}[armeabi-v7a]

- name: Assemple 'Demo'
working-directory: ${{github.workspace}}/AE/android
run: ./gradlew :demo:assemble${{matrix.config}}

- uses: actions/upload-artifact@v4
with:
name: AsEn-android-demo-${{matrix.config}}
path: ${{github.workspace}}/AE/android/demo/build/outputs/apk/${{matrix.config}}/demo-${{matrix.config}}.apk

- name: Cleanup 'Demo'
working-directory: ${{github.workspace}}/AE/android
run: |
rm -rf demo/build
rm -rf demo/.cxx
132 changes: 132 additions & 0 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
name: Linux

on: [push, pull_request, workflow_dispatch]

jobs:
build-gcc-13:
strategy:
matrix:
config: [Debug, Develop, Profile, Release]

if: false
runs-on: ubuntu-24.04
name: Linux x64, GCC 13, ${{matrix.config}}

steps:
- uses: actions/checkout@v4

- name: Configure dependencies
run: |
sudo apt-get install build-essential pkg-config libx11-dev libxcursor-dev \
libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev libudev-dev \
libxi-dev libxrandr-dev yasm liburing-dev libpng-dev libbz2-dev
- name: Create Build Environment
working-directory: ${{github.workspace}}
run: |
mkdir _build
cd AE-Bin
wget -O external.zip "https://getfile.dokpub.com/yandex/get/https://disk.yandex.ru/d/8pkMenTvHYT6-g"
unzip external.zip
- name: Configure CMake
env:
CC: gcc-13
CXX: g++-13
shell: bash
working-directory: ${{github.workspace}}
run: cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=${{matrix.config}} -DAE_ENABLE_VULKAN=ON -DAE_RES_EDITOR_RELEASE=ON -DAE_GRAPHICS_STRONG_VALIDATION=ON -DAE_CI_BUILD_TEST=ON -DAE_ENABLE_LOGS=ON -S "AE" -B "_build"

- name: Build
working-directory: ${{github.workspace}}
run: cmake --build "_build" --config ${{matrix.config}} -j 2

- name: Test
working-directory: ${{github.workspace}}/_build
run: |
ctest -R "Tests.Base" -C ${{matrix.config}}
ctest -R "Tests.Serializing" -C ${{matrix.config}}
ctest -R "Tests.ResourceLoaders" -C ${{matrix.config}}
ctest -R "Tests.Scripting" -C ${{matrix.config}}
ctest -R "Tests.Threading" -C ${{matrix.config}}
ctest -R "Tests.Networking" -C ${{matrix.config}}
ctest -R "Tests.ECS-st" -C ${{matrix.config}}
ctest -R "Tests.VFS" -C ${{matrix.config}}
ctest -R "Tests.AtlasTools" -C ${{matrix.config}}
ctest -R "Tests.GeometryTools" -C ${{matrix.config}}
ctest -R "Tests.PipelineCompiler" -C ${{matrix.config}}
- uses: actions/upload-artifact@v4
with:
name: AsEn-linux-x64-gcc13-${{matrix.config}}
path: |
${{github.workspace}}/_build/bin/CICD.elf
${{github.workspace}}/_build/bin/OfflinePacker.elf
${{github.workspace}}/_build/bin/ResourceEditor.elf
${{github.workspace}}/_build/bin/RemoteGraphicsDevice.elf
build-clang-16:
strategy:
matrix:
config: [Debug, Develop, Profile, Release]

runs-on: ubuntu-24.04
name: Linux x64, Clang 16, ${{matrix.config}}

steps:
- uses: actions/checkout@v4

- name: Configure dependencies
run: |
sudo apt-get install build-essential pkg-config libx11-dev libxcursor-dev \
libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev libudev-dev \
libxi-dev libxrandr-dev yasm liburing-dev libpng-dev libbz2-dev \
libc++-dev libc++abi-dev
- name: Create Build Environment
working-directory: ${{github.workspace}}
run: |
mkdir _build
cd AE-Bin
wget -O external.zip "https://getfile.dokpub.com/yandex/get/https://disk.yandex.ru/d/W1W_M_CnbD-8Hw"
unzip external.zip
- name: Configure CMake
env:
CC: clang-16
CXX: clang++-16
CPP: clang-cpp-16
LD: ld.lld-16
shell: bash
working-directory: ${{github.workspace}}
run: cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=${{matrix.config}} -DAE_ENABLE_VULKAN=ON -DAE_RES_EDITOR_RELEASE=ON -DAE_GRAPHICS_STRONG_VALIDATION=ON -DAE_CI_BUILD_TEST=ON -DAE_ENABLE_LOGS=ON -S "AE" -B "_build"

- name: Build
working-directory: ${{github.workspace}}
run: cmake --build "_build" --config ${{matrix.config}} -j 2

- name: Test
working-directory: ${{github.workspace}}/_build
run: |
ctest -R "Tests.Base" -C ${{matrix.config}}
ctest -R "Tests.Serializing" -C ${{matrix.config}}
ctest -R "Tests.ResourceLoaders" -C ${{matrix.config}}
ctest -R "Tests.Scripting" -C ${{matrix.config}}
ctest -R "Tests.Threading" -C ${{matrix.config}}
ctest -R "Tests.Networking" -C ${{matrix.config}}
ctest -R "Tests.ECS-st" -C ${{matrix.config}}
ctest -R "Tests.VFS" -C ${{matrix.config}}
ctest -R "Tests.AtlasTools" -C ${{matrix.config}}
ctest -R "Tests.GeometryTools" -C ${{matrix.config}}
ctest -R "Tests.PipelineCompiler" -C ${{matrix.config}}
- uses: actions/upload-artifact@v4
with:
name: AsEn-linux-x64-clang16-${{matrix.config}}
path: |
${{github.workspace}}/_build/bin/CICD.elf
${{github.workspace}}/_build/bin/OfflinePacker.elf
${{github.workspace}}/_build/bin/ResourceEditor.elf
${{github.workspace}}/_build/bin/RemoteGraphicsDevice.elf
53 changes: 53 additions & 0 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: MacOS

on: [push, pull_request, workflow_dispatch]

jobs:
build:
strategy:
matrix:
config: [Debug, Develop, Profile, Release]

runs-on: macos-latest
name: MacOS ARM64, ${{matrix.config}}

steps:
- uses: actions/checkout@v4

- name: Create Build Environment
working-directory: ${{github.workspace}}
run: |
mkdir _build
cd AE-Bin
wget -O external.zip "https://getfile.dokpub.com/yandex/get/https://disk.yandex.ru/d/i4Q642wgttN8Gw"
unzip external.zip
- name: Configure CMake
working-directory: ${{github.workspace}}
run: cmake -DCMAKE_BUILD_TYPE=${{matrix.config}} -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_OSX_ARCHITECTURES=arm64 -DAE_ENABLE_VULKAN=ON -DAE_USE_PCH=OFF -DAE_CI_BUILD_TEST=ON -DAE_ENABLE_LOGS=ON -S "AE" -B "_build"

- name: Build
working-directory: ${{github.workspace}}
run: cmake --build "_build" --config ${{matrix.config}} -j 2

- name: Test
working-directory: ${{github.workspace}}/_build
run: |
ctest -R "Tests.Base" -C ${{matrix.config}}
ctest -R "Tests.Serializing" -C ${{matrix.config}}
ctest -R "Tests.ResourceLoaders" -C ${{matrix.config}}
ctest -R "Tests.Threading" -C ${{matrix.config}}
ctest -R "Tests.Networking" -C ${{matrix.config}}
ctest -R "Tests.ECS-st" -C ${{matrix.config}}
ctest -R "Tests.VFS" -C ${{matrix.config}}
ctest -R "Tests.AtlasTools" -C ${{matrix.config}}
ctest -R "Tests.GeometryTools" -C ${{matrix.config}}
- uses: actions/upload-artifact@v4
with:
name: AsEn-macos-arm64-${{matrix.config}}
path: |
${{github.workspace}}/_build/bin/CICD.app
${{github.workspace}}/_build/bin/RemoteGraphicsDevice.app
Loading

0 comments on commit 1dc3085

Please sign in to comment.