summaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/build_release.yml188
1 files changed, 99 insertions, 89 deletions
diff --git a/.github/workflows/build_release.yml b/.github/workflows/build_release.yml
index 2ab5787..d9cfd6e 100644
--- a/.github/workflows/build_release.yml
+++ b/.github/workflows/build_release.yml
@@ -33,77 +33,84 @@ jobs:
name: 🔧 Build
needs: static-checks
strategy:
+ fail-fast: false
matrix:
include:
# Android
- platform: android
- arch: 'x86'
- sconsflags: 'android_arch=x86'
+ arch: 'x86_32'
+ gdnative_flags: 'android_arch=x86'
+ sconsflags: ''
os: 'ubuntu-20.04'
- platform: android
- arch: 'x64'
- sconsflags: 'android_arch=x86_64'
+ arch: 'x86_64'
+ gdnative_flags: 'android_arch=x86_64'
+ sconsflags: ''
os: 'ubuntu-20.04'
- platform: android
- arch: 'arm'
- sconsflags: 'android_arch=armv7'
+ arch: 'arm32'
+ gdnative_flags: 'android_arch=armv7'
+ sconsflags: ''
os: 'ubuntu-20.04'
- platform: android
arch: 'arm64'
- sconsflags: 'android_arch=arm64v8'
+ gdnative_flags: 'android_arch=arm64v8'
+ sconsflags: ''
os: 'ubuntu-20.04'
# iOS
- platform: ios
- arch: 'x64'
- sconsflags: 'ios_arch=x86_64 ios_simulator=true'
- os: 'macos-latest'
- - platform: ios
- arch: 'arm'
- sconsflags: 'ios_arch=armv7'
+ arch: 'x86_64'
+ gdnative_flags: 'ios_arch=x86_64'
+ sconsflags: 'ios_simulator=true'
os: 'macos-latest'
- platform: ios
arch: 'arm64'
- sconsflags: 'ios_arch=arm64'
- os: 'macos-latest'
+ gdnative_flags: 'ios_arch=arm64'
+ sconsflags: ''
+ os: 'macos-11'
+
# Linux
- platform: linux
- arch: 'x86'
- sconsflags: 'bits=32'
+ arch: 'x86_32'
+ gdnative_flags: 'bits=32'
+ sconsflags: ''
os: 'ubuntu-20.04'
- platform: linux
- arch: 'x64'
- sconsflags: 'bits=64'
+ arch: 'x86_64'
+ gdnative_flags: 'bits=64'
+ sconsflags: ''
os: 'ubuntu-20.04'
# macOS
- platform: osx
- arch: 'x64'
- sconsflags: 'bits=64'
- os: 'macos-latest'
+ arch: 'x86_64'
+ gdnative_flags: 'macos_arch=x86_64 bits=64'
+ sconsflags: ''
+ os: 'macos-11'
- platform: osx
+ gdnative_flags: 'macos_arch=arm64 bits=64'
arch: 'arm64'
- sconsflags: 'bits=64 macos_arch=arm64 macos_sdk_path=/Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/'
- os: 'macos-10.15'
+ sconsflags: ''
+ os: 'macos-11'
# Windows
- platform: windows
- arch: 'x86'
- sconsflags: 'bits=32'
- os: 'windows-latest'
+ arch: 'x86_32'
+ gdnative_flags: 'bits=32'
+ sconsflags: 'use_mingw=yes'
+ os: 'ubuntu-20.04'
msvc_arch: amd64_x86
- platform: windows
- arch: 'x64'
- sconsflags: 'bits=64'
- os: 'windows-latest'
+ arch: 'x86_64'
+ gdnative_flags: 'bits=64'
+ sconsflags: 'use_mingw=yes'
+ os: 'ubuntu-20.04'
msvc_arch: amd64
env:
- SCONSFLAGS: ${{ matrix.sconsflags }} platform=${{ matrix.platform }} --jobs=2
- NDK_VERSION: 22b
- ANDROID_NDK_ROOT: ${{github.workspace}}/android-ndk-r22b
- MSVC_VARS: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat'
+ SCONSFLAGS: ${{ matrix.sconsflags }} platform=${{ matrix.platform }} arch=${{ matrix.arch }} --jobs=2
defaults:
run:
@@ -114,31 +121,22 @@ jobs:
with:
submodules: recursive
- - name: Cache NDK
- id: cache-ndk
- if: ${{ matrix.platform == 'android' }}
- uses: actions/cache@v2
- with:
- path: ${{ env.ANDROID_NDK_ROOT }}
- key: ndk-${{ env.NDK_VERSION }}
-
- - name: Download NDK
- if: ${{ matrix.platform == 'android' && steps.cache-ndk.outputs.cache-hit != 'true' }}
- id: setup-ndk
- run: |
- cd ${{ github.workspace }}
- curl -L https://dl.google.com/android/repository/android-ndk-r${{ env.NDK_VERSION }}-linux-x86_64.zip -o ndk.zip
- unzip ndk.zip
- ls
-
- - name: Setup MSVC build environment for ${{ matrix.msvc_arch }}
+ - name: Install Windows build dependencies
if: ${{ matrix.platform == 'windows' }}
- run: "'${{ env.MSVC_VARS }}' ${{ matrix.msvc_arch }}"
+ run: |
+ sudo apt-get update
+ sudo apt-get install build-essential mingw-w64
+ sudo update-alternatives --set i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-gcc-posix
+ sudo update-alternatives --set i686-w64-mingw32-g++ /usr/bin/i686-w64-mingw32-g++-posix
+ sudo update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix
+ sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
+ dpkg -l | grep ii | grep mingw
+ update-alternatives --get-selections | grep mingw
- name: Install Linux build dependencies
if: ${{ matrix.platform == 'linux' }}
run: |
- sudo apt-get install build-essential gcc-multilib wget g++-multilib
+ sudo apt-get install build-essential gcc-multilib g++-multilib
- name: Set up Python 3.x
uses: actions/setup-python@v2
@@ -152,35 +150,25 @@ jobs:
python -m pip install scons
python --version
scons --version
+ cmake --version
- - name: Get WebRTC package for ${{ matrix.platform }} - ${{ matrix.arch }}
- uses: ./.github/actions/webrtc-download
- with:
- platform: ${{ matrix.platform }}
- archs: ${{ matrix.arch }}
-
- - name: Fix godot-cpp revision and file names for OSX arm64 build.
- if: ${{ matrix.platform == 'osx' && matrix.arch == 'arm64' }}
+ - name: Compile Extension - debug - ${{ matrix.platform }} - ${{ matrix.arch }}
run: |
- cd godot-cpp
- git checkout e08ecdc28c5409cb5366027227e996c342dcee93
- rm -rf src/gen/
- rm -rf include/gen/
- mkdir bin
- ln -s libgodot-cpp.osx.debug.64.a bin/libgodot-cpp.osx.debug.arm64.a
- ln -s libgodot-cpp.osx.release.64.a bin/libgodot-cpp.osx.release.arm64.a
-
- - name: Compilation ${{ matrix.platform }} - ${{ matrix.arch }} - godot-cpp
+ scons target=debug generate_bindings=yes
+
+ - name: Compile GDNative - debug - ${{ matrix.platform }} - ${{ matrix.arch }}
run: |
- scons -C godot-cpp target=debug generate_bindings=yes
- scons -C godot-cpp target=release
+ scons target=debug generate_bindings=yes ${{ matrix.gdnative_flags }} godot_version=3
- - name: Compilation ${{ matrix.platform }} - ${{ matrix.arch }} - webrtc-native
+ - name: Compile Extension - release - ${{ matrix.platform }} - ${{ matrix.arch }}
run: |
- scons target=debug
scons target=release
- - uses: actions/upload-artifact@v2
+ - name: Compile GDNative - release ${{ matrix.platform }} - ${{ matrix.arch }}
+ run: |
+ scons target=release ${{ matrix.gdnative_flags }} godot_version=3
+
+ - uses: actions/upload-artifact@v3
with:
name: ${{ github.job }}-${{ matrix.platform }}-${{ matrix.arch }}
path: bin/*
@@ -191,32 +179,54 @@ jobs:
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v2
+ with:
+ submodules: recursive
- - uses: actions/download-artifact@v2
+ - uses: actions/download-artifact@v3
with:
path: artifacts
+ - name: Bundle licenses.
+ run: |
+ cp LICENSE artifacts/LICENSE.webrtc-native
+ cp deps/libdatachannel/LICENSE artifacts/LICENSE.libdatachannel
+ cp deps/openssl/LICENSE.txt artifacts/LICENSE.openssl
+ cp deps/libdatachannel/deps/libjuice/LICENSE artifacts/LICENSE.libjuice
+ cp deps/libdatachannel/deps/usrsctp/LICENSE.md artifacts/LICENSE.usrsctp
+ cp deps/libdatachannel/deps/libsrtp/LICENSE artifacts/LICENSE.libsrtp
+ cp deps/libdatachannel/deps/json/LICENSE.MIT artifacts/LICENSE.json
+ cp deps/libdatachannel/deps/plog/LICENSE artifacts/LICENSE.plog
+
- name: Package artifacts for release
run: |
mkdir release
cd release
- for name in webrtc webrtc_debug
+
+ ls -R
+
+ for version in extension gdnative
do
- mkdir -p ${name}/lib/
- find ../artifacts -wholename "*/${name}/lib/*" | xargs cp -t ${name}/lib/
- find ../artifacts -wholename "*/${name}/${name}.tres" | head -n 1 | xargs cp -t ${name}/
+ for name in webrtc webrtc_debug
+ do
+ destdir="${version}/${name}"
+ mkdir -p ${destdir}/lib
+ find ../artifacts -wholename "*/${destdir}/lib/*" | xargs cp -t ${destdir}/lib/
+ find ../artifacts -wholename "*/${destdir}/${name}.tres" -or -wholename "*/${destdir}/${name}.gdextension" | head -n 1 | xargs cp -t ${destdir}/
+ find ../artifacts -wholename "*/LICENSE*" | xargs cp -t ${destdir}/
+ cd ${version}
+ zip -r ../godot-${version}-${name}.zip ${name}
+ cd ..
+ done
done
- zip -r godot-webrtc-native-release.zip webrtc
- zip -r godot-webrtc-native-debug.zip webrtc_debug
ls -R
- - uses: actions/upload-artifact@v2
+ - uses: actions/upload-artifact@v3
with:
- name: godot-webrtc-native-debug.zip
- path: release/godot-webrtc-native-debug.zip
+ name: godot-webrtc-extension
+ path: release/*-extension-*.zip
- - uses: actions/upload-artifact@v2
+ - uses: actions/upload-artifact@v3
with:
- name: godot-webrtc-native-release.zip
- path: release/godot-webrtc-native-release.zip
+ name: godot-webrtc-gdnative
+ path: release/*-gdnative-*.zip