summaryrefslogtreecommitdiffstats
path: root/.github/workflows/ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r--.github/workflows/ci.yml75
1 files changed, 75 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..7404806
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,75 @@
+name: CI
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - master
+
+jobs:
+ build:
+ strategy:
+ matrix:
+ platform:
+ - name: Win64
+ os: windows-latest
+ cmake_param: -DCMAKE_GENERATOR_PLATFORM=x64
+ - name: Win32
+ os: windows-latest
+ cmake_param: -DCMAKE_GENERATOR_PLATFORM=Win32
+ - name: Linux
+ os: ubuntu-latest
+ cmake_param: -GNinja
+ - name: MacOS
+ os: macos-latest
+ cmake_param: -GNinja
+ build_type: [Debug, Release]
+ name: Build (${{ matrix.platform.name }}-${{ matrix.build_type }})
+ runs-on: ${{ matrix.platform.os }}
+
+ steps:
+ - uses: actions/checkout@v2
+ - uses: seanmiddleditch/gha-setup-ninja@master
+ - name: Prepare Linux
+ if: ${{ runner.os == 'Linux' }}
+ run: sudo apt install libgl1-mesa-dev libglu1-mesa-dev
+ - name: Set up cache
+ uses: actions/cache@v2
+ with:
+ path: ~/cpm-cache
+ key: ${{ runner.os }}-cpm-${{ hashFiles('**/') }}
+ restore-keys: |
+ ${{ runner.os }}-cpm-
+ - name: Configure CMake
+ run: cmake -B ${{ github.workspace }}/build ${{ matrix.platform.cmake_param }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCPM_SOURCE_CACHE=~/cpm-cache -DOPTICK_ENABLED=OFF
+ - name: Build
+ run: cmake --build ${{ github.workspace }}/build --config ${{ matrix.build_type }} --target AltCraft
+ - name: Upload debug symbols artifacts
+ uses: actions/upload-artifact@v2
+ if: ${{ runner.os == 'Windows' }}
+ with:
+ name: symbols-${{ matrix.platform.name }}-${{ matrix.build_type }}
+ path: ${{ github.workspace }}/build/**/*.pdb
+ - name: Copy binaries for packaging
+ run: mkdir $(echo "${{ github.workspace }}"|sed 's/\\/\//g')/package && find $(echo "${{ github.workspace }}"|sed 's/\\/\//g')/build -type f \( -name "*.exe" -o -name "*.dll" -o -name "*.dylib" -o -name "*.so" \) -exec cp {} $(echo "${{ github.workspace }}"|sed 's/\\/\//g')/package \;
+ shell: bash
+ - name: Finish binaries
+ run: cp $(echo "${{ github.workspace }}"|sed 's/\\/\//g')/build/AltCraft $(echo "${{ github.workspace }}"|sed 's/\\/\//g')/package/AltCraft || rm -f $(echo "${{ github.workspace }}"|sed 's/\\/\//g')/package/CompilerIdC*.exe
+ shell: bash
+ - name: Download MC:JE assets
+ run: curl https://launcher.mojang.com/v1/objects/0f275bc1547d01fa5f56ba34bdc87d981ee12daf/client.jar --output $(echo "${{ github.workspace }}"|sed 's/\\/\//g')/client.jar && unzip $(echo "${{ github.workspace }}"|sed 's/\\/\//g')/client.jar -d $(echo "${{ github.workspace }}"|sed 's/\\/\//g')/mc-assets
+ shell: bash
+ - name: Copy AC and MC assets
+ run: cp -r $(echo "${{ github.workspace }}"|sed 's/\\/\//g')/mc-assets/assets $(echo "${{ github.workspace }}"|sed 's/\\/\//g')/package && cp -r $(echo "${{ github.workspace }}"|sed 's/\\/\//g')/cwd/* $(echo "${{ github.workspace }}"|sed 's/\\/\//g')/package
+ shell: bash
+ - name: Download and copy fonts
+ run: mkdir $(echo "${{ github.workspace }}"|sed 's/\\/\//g')/package/assets/altcraft/fonts && curl -L https://github.com/google/fonts/raw/main/apache/opensans/OpenSans%5Bwdth%2Cwght%5D.ttf --output $(echo "${{ github.workspace }}"|sed 's/\\/\//g')/package/assets/altcraft/fonts/OpenSans-Regular.ttf
+ shell: bash
+ - name: Upload package artifacts
+ uses: actions/upload-artifact@v2
+ with:
+ name: AltCraft-${{ matrix.platform.name }}-${{ matrix.build_type }}
+ path: ${{ github.workspace }}/package
+ \ No newline at end of file