diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 34aa396..c282c94 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,8 +23,6 @@ env: ANDROID_API: 21 IOS_VERSION_MIN: 10.0 -# NOTE: Underscore and brackets to workaround issue in nektos/act': https://github.com/nektos/act/issues/104 - jobs: linux: name: Linux @@ -55,7 +53,7 @@ jobs: path: ${{ env.MONO_SOURCE_ROOT }} key: ${{ runner.os }}-${{ env.MONO_SHA }}-mono-sources - name: Checkout Mono Sources - if: steps.cache_mono_sources.outputs['cache-hit'] != 'true' + if: steps.cache_mono_sources.outputs.cache-hit != 'true' uses: actions/checkout@v2 with: repository: mono/mono @@ -71,7 +69,7 @@ jobs: with: python-version: ${{ env.PYTHON_VERSION }} - name: Patch Mono - if: steps.cache_mono_sources.outputs['cache-hit'] != 'true' + if: steps.cache_mono_sources.outputs.cache-hit != 'true' run: python3 godot-mono-builds/patch_mono.py - name: Configure @@ -107,12 +105,14 @@ jobs: run: | echo "::set-env name=MONO_SOURCE_ROOT::$GITHUB_WORKSPACE/mono_sources" - name: Install Dependencies (x86) + if: matrix.target == 'x86' run: | sudo dpkg --add-architecture i386 sudo apt-get -y update sudo apt-get -y install git autoconf libtool libtool-bin automake build-essential gettext cmake python3 curl sudo apt-get -y install mingw-w64 - name: Install Dependencies (x86_64) + if: matrix.target == 'x86_64' run: | sudo apt-get -y update sudo apt-get -y install git autoconf libtool libtool-bin automake build-essential gettext cmake python3 curl @@ -124,7 +124,7 @@ jobs: path: ${{ env.MONO_SOURCE_ROOT }} key: ${{ runner.os }}-${{ env.MONO_SHA }}-mono-sources - name: Checkout Mono Sources - if: steps.cache_mono_sources.outputs['cache-hit'] != 'true' + if: steps.cache_mono_sources.outputs.cache-hit != 'true' uses: actions/checkout@v2 with: repository: mono/mono @@ -140,7 +140,7 @@ jobs: with: python-version: ${{ env.PYTHON_VERSION }} - name: Patch Mono - if: steps.cache_mono_sources.outputs['cache-hit'] != 'true' + if: steps.cache_mono_sources.outputs.cache-hit != 'true' run: python3 godot-mono-builds/patch_mono.py - name: Configure @@ -185,7 +185,7 @@ jobs: path: ${{ env.MONO_SOURCE_ROOT }} key: ${{ runner.os }}-${{ env.MONO_SHA }}-mono-sources - name: Checkout Mono Sources - if: steps.cache_mono_sources.outputs['cache-hit'] != 'true' + if: steps.cache_mono_sources.outputs.cache-hit != 'true' uses: actions/checkout@v2 with: repository: mono/mono @@ -201,7 +201,7 @@ jobs: with: python-version: ${{ env.PYTHON_VERSION }} - name: Patch Mono - if: steps.cache_mono_sources.outputs['cache-hit'] != 'true' + if: steps.cache_mono_sources.outputs.cache-hit != 'true' run: python3 godot-mono-builds/patch_mono.py - name: Configure @@ -246,7 +246,7 @@ jobs: path: ${{ env.MONO_SOURCE_ROOT }} key: ${{ runner.os }}-${{ env.MONO_SHA }}-mono-sources - name: Checkout Mono Sources - if: steps.cache_mono_sources.outputs['cache-hit'] != 'true' + if: steps.cache_mono_sources.outputs.cache-hit != 'true' uses: actions/checkout@v2 with: repository: mono/mono @@ -262,7 +262,7 @@ jobs: with: python-version: ${{ env.PYTHON_VERSION }} - name: Patch Mono - if: steps.cache_mono_sources.outputs['cache-hit'] != 'true' + if: steps.cache_mono_sources.outputs.cache-hit != 'true' run: python3 godot-mono-builds/patch_mono.py - name: Configure @@ -313,7 +313,7 @@ jobs: path: ${{ env.MONO_SOURCE_ROOT }} key: ${{ runner.os }}-${{ env.MONO_SHA }}-mono-sources - name: Checkout Mono Sources - if: steps.cache_mono_sources.outputs['cache-hit'] != 'true' + if: steps.cache_mono_sources.outputs.cache-hit != 'true' uses: actions/checkout@v2 with: repository: mono/mono @@ -329,7 +329,7 @@ jobs: with: python-version: ${{ env.PYTHON_VERSION }} - name: Patch Mono - if: steps.cache_mono_sources.outputs['cache-hit'] != 'true' + if: steps.cache_mono_sources.outputs.cache-hit != 'true' run: python3 godot-mono-builds/patch_mono.py - name: Download LLVM artifact @@ -408,7 +408,7 @@ jobs: path: ${{ env.MONO_SOURCE_ROOT }} key: ${{ runner.os }}-${{ env.MONO_SHA }}-mono-sources - name: Checkout Mono Sources - if: steps.cache_mono_sources.outputs['cache-hit'] != 'true' + if: steps.cache_mono_sources.outputs.cache-hit != 'true' uses: actions/checkout@v2 with: repository: mono/mono @@ -424,7 +424,7 @@ jobs: with: python-version: ${{ env.PYTHON_VERSION }} - name: Patch Mono - if: steps.cache_mono_sources.outputs['cache-hit'] != 'true' + if: steps.cache_mono_sources.outputs.cache-hit != 'true' run: python3 godot-mono-builds/patch_mono.py - name: Configure @@ -509,7 +509,7 @@ jobs: path: ${{ env.MONO_SOURCE_ROOT }} key: ${{ runner.os }}-${{ env.MONO_SHA }}-mono-sources - name: Checkout Mono Sources - if: steps.cache_mono_sources.outputs['cache-hit'] != 'true' + if: steps.cache_mono_sources.outputs.cache-hit != 'true' uses: actions/checkout@v2 with: repository: mono/mono @@ -538,7 +538,7 @@ jobs: chmod 755 $HOME/mono-installs/llvm-${{ matrix.llvm }}/bin/* mkdir -p $HOME/mono-configs/ && touch $HOME/mono-configs/.stamp-${{ matrix.llvm }}-make - name: Patch Mono - if: steps.cache_mono_sources.outputs['cache-hit'] != 'true' + if: steps.cache_mono_sources.outputs.cache-hit != 'true' run: python3 godot-mono-builds/patch_mono.py - name: Configure Runtime @@ -593,7 +593,7 @@ jobs: path: ${{ env.MONO_SOURCE_ROOT }} key: ${{ runner.os }}-${{ env.MONO_SHA }}-mono-sources - name: Checkout Mono Sources - if: steps.cache_mono_sources.outputs['cache-hit'] != 'true' + if: steps.cache_mono_sources.outputs.cache-hit != 'true' uses: actions/checkout@v2 with: repository: mono/mono @@ -613,7 +613,7 @@ jobs: with: version: ${{ env.EMSDK_VERSION }} - name: Patch Mono - if: steps.cache_mono_sources.outputs['cache-hit'] != 'true' + if: steps.cache_mono_sources.outputs.cache-hit != 'true' run: python3 godot-mono-builds/patch_mono.py - name: Configure @@ -659,27 +659,27 @@ jobs: run: | echo "::set-env name=MONO_SOURCE_ROOT::$GITHUB_WORKSPACE/mono_sources" - name: Install Dependencies (Linux) - if: steps.cache_llvm.outputs['cache-hit'] != 'true' && matrix.os == 'ubuntu-latest' + if: steps.cache_llvm.outputs.cache-hit != 'true' && matrix.os == 'ubuntu-latest' run: | sudo apt-get -y update sudo apt-get -y install git autoconf libtool libtool-bin automake build-essential gettext cmake python3 curl - name: Install Dependencies (Linux Targeting Windows) - if: steps.cache_llvm.outputs['cache-hit'] != 'true' && matrix.os == 'ubuntu-latest' && matrix.target == 'llvmwin64' + if: steps.cache_llvm.outputs.cache-hit != 'true' && matrix.os == 'ubuntu-latest' && matrix.target == 'llvmwin64' run: | sudo apt-get -y install mingw-w64 libz-mingw-w64-dev - name: Install Dependencies (macOS) - if: steps.cache_llvm.outputs['cache-hit'] != 'true' && matrix.os == 'macos-latest' + if: steps.cache_llvm.outputs.cache-hit != 'true' && matrix.os == 'macos-latest' run: | brew install autoconf automake libtool pkg-config cmake python3 - name: Cache Mono Sources - if: steps.cache_llvm.outputs['cache-hit'] != 'true' + if: steps.cache_llvm.outputs.cache-hit != 'true' id: cache_mono_sources uses: actions/cache@v1 with: path: ${{ env.MONO_SOURCE_ROOT }} key: ${{ runner.os }}-${{ env.MONO_SHA }}-mono-sources - name: Checkout Mono Sources - if: steps.cache_mono_sources.outputs['cache-hit'] != 'true' && steps.cache_llvm.outputs['cache-hit'] != 'true' + if: steps.cache_mono_sources.outputs.cache-hit != 'true' && steps.cache_llvm.outputs.cache-hit != 'true' uses: actions/checkout@v2 with: repository: mono/mono @@ -687,21 +687,21 @@ jobs: submodules: true path: ${{ env.MONO_SOURCE_ROOT }} - name: Checkout - if: steps.cache_llvm.outputs['cache-hit'] != 'true' + if: steps.cache_llvm.outputs.cache-hit != 'true' uses: actions/checkout@v2 with: path: godot-mono-builds - name: Setup Python - if: steps.cache_llvm.outputs['cache-hit'] != 'true' + if: steps.cache_llvm.outputs.cache-hit != 'true' uses: actions/setup-python@v1 with: python-version: ${{ env.PYTHON_VERSION }} - name: Patch Mono - if: steps.cache_mono_sources.outputs['cache-hit'] != 'true' && steps.cache_llvm.outputs['cache-hit'] != 'true' + if: steps.cache_mono_sources.outputs.cache-hit != 'true' && steps.cache_llvm.outputs.cache-hit != 'true' run: python3 godot-mono-builds/patch_mono.py - name: Make - if: steps.cache_llvm.outputs['cache-hit'] != 'true' + if: steps.cache_llvm.outputs.cache-hit != 'true' run: python3 godot-mono-builds/llvm.py make --target=${{ matrix.target }} -j 2 - name: Upload LLVM Artifact @@ -721,13 +721,12 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - # desktop-win32 is disabled until build is fixed - product: [desktop, android, ios, wasm] + product: [desktop, desktop-win32, android, ios, wasm] steps: - name: Set Environment Variables run: | echo "::set-env name=MONO_SOURCE_ROOT::$GITHUB_WORKSPACE/mono_sources" - - name: Install Dependencies (x86_64) + - name: Install Dependencies run: | sudo apt-get -y update sudo apt-get -y install git autoconf libtool libtool-bin automake build-essential gettext cmake python3 curl @@ -738,7 +737,7 @@ jobs: path: ${{ env.MONO_SOURCE_ROOT }} key: ${{ runner.os }}-${{ env.MONO_SHA }}-mono-sources - name: Checkout Mono Sources - if: steps.cache_mono_sources.outputs['cache-hit'] != 'true' + if: steps.cache_mono_sources.outputs.cache-hit != 'true' uses: actions/checkout@v2 with: repository: mono/mono @@ -754,9 +753,13 @@ jobs: with: python-version: ${{ env.PYTHON_VERSION }} - name: Patch Mono - if: steps.cache_mono_sources.outputs['cache-hit'] != 'true' + if: steps.cache_mono_sources.outputs.cache-hit != 'true' run: python3 godot-mono-builds/patch_mono.py + - name: Make Desktop BCL for this Build Platform + if: matrix.product == 'desktop-win32' + run: + python3 godot-mono-builds/bcl.py make --product=desktop -j 2 - name: Make run: python3 godot-mono-builds/bcl.py make --product=${{ matrix.product }} -j 2 @@ -786,15 +789,15 @@ jobs: steps: - name: Short SHA id: short-sha - run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)" + run: echo "::set-output name=sha7::$(echo ${GITHUB_SHA} | cut -c1-7)" - name: Create Release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - tag_name: release-${{ steps.short-sha.outputs.sha8 }} - release_name: Release ${{ steps.short-sha.outputs.sha8 }} + tag_name: release-${{ steps.short-sha.outputs.sha7 }} + release_name: Release ${{ steps.short-sha.outputs.sha7 }} body: | Mono: - Branch: ${{ env.MONO_BRANCH }} @@ -814,14 +817,13 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - # bcl-desktop-win32 is disabled until build is fixed artifact_name: [linux-x86, linux-x86_64, windows-x86, windows-x86_64, osx-x86_64, ios-arm64, ios-x86_64, ios-cross-arm64, android-armeabi-v7a, android-arm64-v8a, android-x86, android-x86_64, android-cross-arm, android-cross-arm64, android-cross-x86, android-cross-x86_64, android-cross-arm-win, android-cross-arm64-win, android-cross-x86-win, android-cross-x86_64-win, wasm-runtime, wasm-runtime-threads, - bcl-desktop, bcl-android, bcl-ios, bcl-wasm] + bcl-desktop, bcl-desktop-win32, bcl-android, bcl-ios, bcl-wasm] steps: - name: Download Artifact uses: actions/download-artifact@v2 diff --git a/README.md b/README.md index d221c96..f0ef2b2 100644 --- a/README.md +++ b/README.md @@ -123,6 +123,8 @@ _AOT cross-compilers for WebAssembly cannot be built with this script yet._ ./bcl.py make --product=wasm ``` +**NOTE:** Building the Desktop BCL for the current system is required first to be able to build the Desktop BCL for Windows. + ## Reference Assemblies ```bash