| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696 |
- # Copyright (c) 2008-2022 the Urho3D project
- # License: MIT
- ---
- name: CI/CD
- on:
- push:
- pull_request:
- repository_dispatch: { types: [ 'Warm DBE build cache' ] }
- jobs:
- init:
- name: Init
- runs-on: ubuntu-latest
- outputs:
- skip: ${{ steps.whatchanged.outputs.skip }}
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- - name: What changed
- id: whatchanged
- run: |
- git fetch --deepen=1
- git log --raw --no-merges -1 |grep '^:' >/tmp/whatchanged
- echo "name=skip::$(grep -cqv 'website/' /tmp/whatchanged; echo $?)" >> $GITHUB_OUTPUT
- linux-old:
- name: 🐧-old
- runs-on: ubuntu-latest
- needs: init
- if: needs.init.outputs.skip == '0'
- strategy:
- fail-fast: false
- matrix:
- platform:
- - rpi
- - arm
- lib-type:
- - static
- - shared
- architecture:
- - 64
- - 32
- build-type:
- - rel
- - dbg
- env:
- HOST: ${{ github.job }}
- PLATFORM: ${{ matrix.platform }}
- BUILD_TYPE: ${{ matrix.build-type }}
- LIB_TYPE: ${{ matrix.lib-type }}
- ARCH: ${{ matrix.architecture }}
- DBE_TAG: master
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- with: { fetch-depth: 0 }
- - name: Free up space
- run: |
- sudo rm -rf /usr/share/dotnet /usr/local/lib/android
- sudo apt-get clean
- df -h
- if: matrix.platform == 'android' || matrix.build-type == 'dbg'
- - name: Source checksum
- id: source_checksum
- run: rake source_checksum
- - name: Cache
- uses: actions/cache@v3
- with:
- path: |
- build/cache/.ccache
- build/cache/.gradle/caches
- build/cache/.gradle/wrapper
- key: |
- ${{ matrix.platform }}-${{ matrix.lib-type }}-${{ matrix.architecture }}-${{ matrix.build-type }}-${{ env.DBE_TAG }}-${{ steps.source_checksum.outputs.hexdigest }}
- restore-keys: |
- ${{ matrix.platform }}-${{ matrix.lib-type }}-${{ matrix.architecture }}-${{ matrix.build-type }}-${{ env.DBE_TAG }}
- ${{ matrix.platform }}-${{ matrix.lib-type }}-${{ matrix.architecture }}-${{ matrix.build-type }}
- - name: DBE
- run: rake update_dot_files && script/dockerized.sh ${PLATFORM/-*} env
- - name: CMake
- run: script/dockerized.sh ${PLATFORM/-*} rake cmake
- if: matrix.platform != 'android'
- - name: Build
- run: script/dockerized.sh ${PLATFORM/-*} rake build
- - name: Test tools
- if: startsWith(matrix.platform, 'linux')
- shell: bash
- run: script/dockerized.sh ${PLATFORM/-*} /home/runner/work/Urho3D/Urho3D/script/test_tools.sh /home/runner/work/Urho3D/Urho3D /home/runner/work/Urho3D/Urho3D/build/ci
- - name: Test
- run: script/dockerized.sh ${PLATFORM/-*} rake test
- if: startsWith(matrix.platform, 'linux') || matrix.platform == 'android'
- #- name: Documentation
- # run: script/dockerized.sh ${PLATFORM/-*} rake doc
- - name: Install
- run: |
- script/dockerized.sh ${PLATFORM/-*} rake install
- if [[ $PLATFORM == android ]]; then touch build/cache/.gradle/mark; fi
- - name: Scaffolding - new
- run: script/dockerized.sh ${PLATFORM/-*} rake new
- - name: Scaffolding - build
- run: |
- cd build/cache/projects/UrhoApp
- script/dockerized.sh ${PLATFORM/-*}
- - name: Scaffolding - test
- run: |
- cd build/cache/projects/UrhoApp
- script/dockerized.sh ${PLATFORM/-*} rake test
- if: matrix.platform == 'android' || startsWith(matrix.platform, 'linux')
- - name: Scaffolding - cleanup
- run: |
- if [[ $PLATFORM == android ]]; then
- rm -rf build/cache/.m2
- find build/cache/.gradle -newer build/cache/.gradle/mark -type d |xargs rm -rf
- else
- rm -rf build/cache/{.urho3d,projects}
- fi
- - name: Package
- run: script/dockerized.sh ${PLATFORM/-*} rake package
- if: github.event_name == 'push' && matrix.platform != 'android'
- - name: Upload
- uses: actions/upload-artifact@v3
- with:
- name: ${{ matrix.platform }}-${{ matrix.lib-type }}-${{ matrix.architecture }}-${{ matrix.build-type }}
- path: |
- build/ci/*.tar.gz
- android/urho3d-lib/build/distributions/*.aar
- android/urho3d-lib/build/distributions/*.zip
- android/urho3d-lib/build/libs/*.jar
- build/*.out
- if: github.event_name == 'push'
- continue-on-error: ${{ !startsWith(github.ref, 'refs/tags/') }}
- - name: Publish
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- PUBLISHER_NAME: ${{ secrets.PUBLISHER_NAME }}
- PUBLISHER_EMAIL: ${{ secrets.PUBLISHER_EMAIL }}
- PUBLISHER_TOKEN: ${{ secrets.PUBLISHER_TOKEN }}
- BINTRAY_USER: ${{ secrets.BINTRAY_USER }}
- BINTRAY_KEY: ${{ secrets.BINTRAY_KEY }}
- run: script/dockerized.sh ${PLATFORM/-*} rake publish
- if: |
- github.event_name == 'push' &&
- (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')) &&
- (matrix.platform == 'android' || (matrix.platform == 'web' && matrix.build-type == 'rel'))
- continue-on-error: ${{ !startsWith(github.ref, 'refs/tags/') }}
- macOS:
- name: 🍏
- runs-on: latest
- needs: init
- if: false && needs.init.outputs.skip == '0' && github.event_name != 'repository_dispatch'
- strategy:
- fail-fast: false
- matrix:
- platform:
- - macOS
- lib-type:
- - static
- - shared
- include:
- - { platform: iOS, lib-type: static }
- - { platform: tvOS, lib-type: static }
- env:
- HOST: ${{ github.job }}
- PLATFORM: ${{ matrix.platform }}
- LIB_TYPE: ${{ matrix.lib-type }}
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- with: { fetch-depth: 0 }
- - name: Select xcode
- run: sudo xcode-select -s '/Applications/Xcode_12.app'
- - name: Install dependencies
- run: while ! brew install doxygen graphviz; do sleep 1; done
- - name: CMake
- run: rake cmake
- - name: Build
- run: rake build
- - name: Test tools
- if: matrix.platform == 'macOS'
- shell: bash
- run: /Users/runner/work/Urho3D/Urho3D/script/test_tools.sh /Users/runner/work/Urho3D/Urho3D /Users/runner/work/Urho3D/Urho3D/build/ci
- - name: Test
- run: rake test
- if: matrix.platform == 'macOS'
- - name: Documentation
- run: rake doc
- - name: Install
- run: rake install
- - name: Scaffolding - new
- run: rake new
- - name: Scaffolding - build
- run: |
- cd ~/projects/UrhoApp
- rake
- - name: Scaffolding - test
- run: |
- cd ~/projects/UrhoApp
- rake test
- if: matrix.platform == 'macOS'
- - name: Scaffolding - cleanup
- run: rm -rf ~/{.urho3d,projects}
- - name: Package
- run: rake package
- if: github.event_name == 'push'
- - name: Upload
- uses: actions/upload-artifact@v3
- with:
- name: ${{ matrix.platform }}-${{ matrix.lib-type }}-all-rel
- path: build/ci/*.tar.gz
- if: github.event_name == 'push'
- windows:
- name: 🔲
- runs-on: windows-2019
- needs: init
- if: needs.init.outputs.skip == '0' && github.event_name != 'repository_dispatch'
- strategy:
- fail-fast: false
- matrix:
- platform:
- - win-vs
- - win-gcc
- lib-type:
- - static
- - shared
- graphics-api:
- - DX11
- - OpenGL
- env:
- HOST: ${{ github.job }}
- PLATFORM: ${{ matrix.platform }}
- LIB_TYPE: ${{ matrix.lib-type }}
- GRAPHICS_API: ${{ matrix.graphics-api }}
- URHO3D_GENERATEBINDINGS: 1
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- with: { fetch-depth: 0 }
- - name: Install dependencies
- id: install_dependencies
- shell: bash {0} # Allow catching errors
- run: |
- # Server may reject connection, so try several times
- for (( i = 0; i < 4; ++i ))
- do
- choco install --no-progress doxygen.install
- if (( $? == 0 )) # Exit code of the previous command
- then
- break
- else
- echo "========== One more try =========="
- sleep 20
- fi
- done
- for (( i = 0; i < 4; ++i ))
- do
- choco install --no-progress graphviz.portable
- if (( $? == 0 )) # Exit code of the previous command
- then
- break
- else
- echo "========== One more try =========="
- sleep 20
- fi
- done
- # Use MSYS2 instead obsolete MinGW
- # https://github.com/urho3d/Urho3D/issues/2887
- echo "c:\msys64\mingw32\bin" >> $GITHUB_PATH
- - name: CMake
- run: rake cmake
- - name: Build
- shell: bash
- run: |
- rake build
- # If there are changes in repository, then generated bindings are different from existing ones
- cd D:/a/Urho3D/Urho3D
- if [[ `git status --porcelain` ]]; then
- echo "!!!!! ERROR: Generated bindings are different from existing ones"
- exit -1 # Exit from the script with error code
- fi
- - name: Test tools
- shell: bash
- run: D:/a/Urho3D/Urho3D/script/test_tools.sh D:/a/Urho3D/Urho3D D:/a/Urho3D/Urho3D/build/ci
- - name: Test
- run: rake test
- if: matrix.graphics-api != 'OpenGL'
- - name: Documentation
- run: rake doc
- - name: Install
- run: rake install
- - name: Scaffolding - new
- run: rake new
- - name: Scaffolding - build
- run: |
- cd ~/projects/UrhoApp
- rake
- - name: Scaffolding - test
- run: |
- cd ~/projects/UrhoApp
- rake test
- if: matrix.graphics-api != 'OpenGL'
- - name: Scaffolding - cleanup
- run: rm -r -fo ~/.urho3d, ~/Projects
- - name: Package
- run: rake package
- if: github.event_name == 'push'
- - name: Upload
- uses: actions/upload-artifact@v3
- with:
- name: ${{ matrix.platform }}-${{ matrix.lib-type }}-64-${{ matrix.graphics-api }}-rel
- path: build/ci/*.zip
- if: github.event_name == 'push'
- Web:
- name: ⚡ Emscripten
- runs-on: ubuntu-latest
- needs: init
- #if: false
- strategy:
- fail-fast: false
- matrix:
- build-type:
- - Release
- - Debug
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- with: { path: "engine_repo" }
- - name: Build
- run: |
- set -x # Echo commands
- echo "Current dir: $PWD"
- git clone --depth 1 https://github.com/emscripten-core/emsdk.git
- ./emsdk/emsdk install 3.1.17
- ./emsdk/emsdk activate 3.1.17
- chmod +x ./emsdk/emsdk_env.sh
- ./emsdk/emsdk_env.sh
- TOOLCHAIN=$PWD/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake
- cmake engine_repo -B engine_build -G "Unix Makefiles" \
- -D WEB=1 -D CMAKE_TOOLCHAIN_FILE=${TOOLCHAIN} \
- -D EMSCRIPTEN_SHARE_DATA=1 -D URHO3D_DATABASE_SQLITE=1 \
- -D CMAKE_BUILD_TYPE=${{ matrix.build-type }}
- cmake --build engine_build
- - name: Upload samples to site
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- PUBLISHER_NAME: ${{ secrets.PUBLISHER_NAME }}
- PUBLISHER_EMAIL: ${{ secrets.PUBLISHER_EMAIL }}
- PUBLISHER_TOKEN: ${{ secrets.PUBLISHER_TOKEN }}
- BINTRAY_USER: ${{ secrets.BINTRAY_USER }}
- BINTRAY_KEY: ${{ secrets.BINTRAY_KEY }}
- run: |
- echo "Current dir: $PWD" # $GITHUB_WORKSPACE
- cd engine_repo
- rake ci_publish_web
- if: | # If not PR
- github.event_name == 'push' && matrix.build-type == 'Release' &&
- (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/'))
- continue-on-error: ${{ !startsWith(github.ref, 'refs/tags/') }}
- Linux_Native:
- runs-on: ubuntu-latest
- needs: init
- if: needs.init.outputs.skip == '0'
- strategy:
- fail-fast: false
- matrix:
- COMPILER:
- - {
- ID: gcc,
- C: gcc,
- CXX: g++,
- }
- - {
- ID: clang,
- C: clang,
- CXX: clang++,
- }
- BITS:
- - 64
- - 32
- LIB_TYPE:
- - {
- ID: shared,
- VALUE: SHARED,
- }
- - {
- ID: static,
- VALUE: STATIC,
- }
- BUILD_TYPE:
- - {
- ID: rel,
- VALUE: Release,
- }
- - {
- ID: dbg,
- VALUE: Debug,
- }
- name: 🐧-${{ matrix.COMPILER.ID }}-${{ matrix.BITS }}-${{ matrix.LIB_TYPE.ID }}-${{ matrix.BUILD_TYPE.ID }}
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- with: { path: "engine_repo" }
- - name: Install dependencies
- run: |
- if [ "${{ matrix.BITS }}" == "32" ]; then
- sudo dpkg --add-architecture i386
- sudo apt update
- sudo apt install gcc-multilib g++-multilib libxext-dev:i386 libgl1-mesa-dev:i386
- else
- sudo apt install libgl1-mesa-dev
- fi
- # Ubuntu repository contains obsolete Doxygen 1.9.1. Download own build
- mkdir $HOME/programs
- cd $HOME/programs
- wget -q -O tmp.zip https://github.com/rurho3d/doxygen-builder/raw/main/doxygen_linux64.zip && unzip tmp.zip && rm tmp.zip
- echo "$HOME/programs" >> $GITHUB_PATH
- - name: Cache
- uses: actions/cache@v3
- with:
- path: engine_build
- key: linux-${{ matrix.COMPILER.ID }}-${{ matrix.BITS }}-${{ matrix.LIB_TYPE.ID }}-${{ matrix.BUILD_TYPE.ID }}-${{ github.sha }}
- restore-keys: linux-${{ matrix.COMPILER.ID }}-${{ matrix.BITS }}-${{ matrix.LIB_TYPE.ID }}-${{ matrix.BUILD_TYPE.ID }}
- - name: Build
- run: |
- #set -x # Echo commands
- echo "Current dir: $PWD"
- if [ "${{ matrix.BITS }}" == "32" ]
- then
- BITS64=0
- else
- BITS64=1
- fi
- cmake engine_repo -B engine_build -G "Unix Makefiles" \
- -D CMAKE_C_COMPILER=${{ matrix.COMPILER.C }} -D CMAKE_CXX_COMPILER=${{ matrix.COMPILER.CXX }} \
- -D URHO3D_DATABASE_SQLITE=1 -D URHO3D_TESTING=1 -D CMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE.VALUE }} \
- -D URHO3D_64BIT=$BITS64 -D URHO3D_LIB_TYPE=${{ matrix.LIB_TYPE.VALUE }} -D URHO3D_GENERATEBINDINGS=1
- cmake --build engine_build
- # If there are changes in repository, then generated bindings are different from existing ones
- cd engine_repo
- if [[ `git status --porcelain` ]]; then
- echo "!!!!! ERROR: Generated bindings are different from existing ones"
- exit -1 # Exit from the script with error code
- fi
- cd ..
- - name: CTest
- shell: bash {0} # Allow catching errors
- run: |
- xvfb-run ctest --test-dir engine_build
- EXIT_CODE=$? # Exit code of the previous command
- if (( $EXIT_CODE != 0 ))
- then
- echo "$(cat ~/.local/share/urho3d/logs/HelloWorld.log)"
- exit $EXIT_CODE
- fi
- - name: Test tools
- run: $GITHUB_WORKSPACE/engine_repo/script/test_tools.sh $GITHUB_WORKSPACE/engine_repo $GITHUB_WORKSPACE/engine_build
- - name: Test app
- run: |
- #cmake --install engine_build --prefix=$HOME/installed_engine # Not works
- #URHO3D_HOME=$HOME/installed_engine # Not works (add export?)
- #URHO3D_HOME=$GITHUB_WORKSPACE/engine_build # Not works
- sudo cmake --build engine_build --target install
- cd engine_repo
- rake new
- cd ..
- if [ "${{ matrix.BITS }}" == "32" ]
- then
- BITS64=0
- else
- BITS64=1
- fi
- cmake $HOME/projects/UrhoApp -B $HOME/projects/UrhoApp_build -G "Unix Makefiles" \
- -D CMAKE_C_COMPILER=${{ matrix.COMPILER.C }} -D CMAKE_CXX_COMPILER=${{ matrix.COMPILER.CXX }} \
- -D URHO3D_DATABASE_SQLITE=1 -D URHO3D_TESTING=1 -D CMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE.VALUE }} \
- -D URHO3D_64BIT=$BITS64 -D URHO3D_LIB_TYPE=${{ matrix.LIB_TYPE.VALUE }}
- cmake --build $HOME/projects/UrhoApp_build
- xvfb-run ctest --test-dir $HOME/projects/UrhoApp_build
- Linux_MinGW:
- runs-on: ubuntu-22.04
- needs: init
- if: needs.init.outputs.skip == '0'
- strategy:
- fail-fast: false
- matrix:
- BITS:
- - 64
- - 32
- LIB_TYPE:
- - {
- ID: shared,
- VALUE: SHARED,
- }
- - {
- ID: static,
- VALUE: STATIC,
- }
- BUILD_TYPE:
- - {
- ID: rel,
- VALUE: Release,
- }
- - {
- ID: dbg,
- VALUE: Debug,
- }
- name: 🐧-mingw-${{ matrix.BITS }}-${{ matrix.LIB_TYPE.ID }}-${{ matrix.BUILD_TYPE.ID }}
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- with: { path: "engine_repo" }
- - name: Install dependencies
- run: sudo apt install mingw-w64
- - name: Cache
- uses: actions/cache@v3
- with:
- path: engine_build
- key: linux-mingw-${{ matrix.BITS }}-${{ matrix.LIB_TYPE.ID }}-${{ matrix.BUILD_TYPE.ID }}-${{ github.sha }}
- restore-keys: linux-mingw-${{ matrix.BITS }}-${{ matrix.LIB_TYPE.ID }}-${{ matrix.BUILD_TYPE.ID }}
- - name: Build
- run: |
- #set -x # Echo commands
- echo "Current dir: $PWD" # $GITHUB_WORKSPACE
- if [ "${{ matrix.BITS }}" == "32" ]
- then
- export MINGW_PREFIX=/usr/bin/i686-w64-mingw32
- BITS64=0
- DX_INC=/usr/i686-w64-mingw32/include
- DX_LIB=/usr/i686-w64-mingw32/lib
- else
- export MINGW_PREFIX=/usr/bin/x86_64-w64-mingw32
- BITS64=1
- DX_INC=/usr/x86_64-w64-mingw32/include
- DX_LIB=/usr/x86_64-w64-mingw32/lib
- fi
- TOOLCHAIN=$GITHUB_WORKSPACE/engine_repo/cmake/Toolchains/MinGW.cmake
- cmake engine_repo -B engine_build -D CMAKE_TOOLCHAIN_FILE=${TOOLCHAIN} -D MINGW=1 \
- -D URHO3D_EXTRAS=1 -D URHO3D_OPENGL=1 -D URHO3D_D3D11=1 \
- -D DIRECTX_INC_SEARCH_PATHS=$DX_INC -D DIRECTX_LIB_SEARCH_PATHS=$DX_LIB \
- -D URHO3D_DATABASE_SQLITE=1 -D CMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE.VALUE }} \
- -D URHO3D_64BIT=$BITS64 -D URHO3D_LIB_TYPE=${{ matrix.LIB_TYPE.VALUE }}
- cmake --build engine_build
- - name: Test app
- run: |
- #sudo cmake --build engine_build --target install
- export URHO3D_HOME=$GITHUB_WORKSPACE/engine_build
- cd engine_repo
- rake new
- cd ..
- if [ "${{ matrix.BITS }}" == "32" ]
- then
- export MINGW_PREFIX=/usr/bin/i686-w64-mingw32
- BITS64=0
- DX_INC=/usr/i686-w64-mingw32/include
- DX_LIB=/usr/i686-w64-mingw32/lib
- else
- export MINGW_PREFIX=/usr/bin/x86_64-w64-mingw32
- BITS64=1
- DX_INC=/usr/x86_64-w64-mingw32/include
- DX_LIB=/usr/x86_64-w64-mingw32/lib
- fi
- TOOLCHAIN=$GITHUB_WORKSPACE/engine_repo/cmake/Toolchains/MinGW.cmake
- cmake $HOME/projects/UrhoApp -B $HOME/projects/UrhoApp_build -D CMAKE_TOOLCHAIN_FILE=${TOOLCHAIN} -D MINGW=1 \
- -D URHO3D_EXTRAS=1 -D URHO3D_OPENGL=1 -D URHO3D_D3D11=1 \
- -D DIRECTX_INC_SEARCH_PATHS=$DX_INC -D DIRECTX_LIB_SEARCH_PATHS=$DX_LIB \
- -D URHO3D_DATABASE_SQLITE=1 -D CMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE.VALUE }} \
- -D URHO3D_64BIT=$BITS64 -D URHO3D_LIB_TYPE=${{ matrix.LIB_TYPE.VALUE }}
- cmake --build $HOME/projects/UrhoApp_build
- Android:
- name: 🤖 Android
- runs-on: ubuntu-latest
- needs: init
- #if: false
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- with: { path: "engine_repo" }
- - name: Free up space
- run: |
- echo "Current user: $USER"
- echo "Current dir: $PWD"
- echo "!df -h"; df -h # Disks usage
- echo "!df -h ~"; df -h ~ # Home physical device
- echo "!du -sh /usr/share/*/ | sort -rh"; du -sh /usr/share/*/ | sort -rh # Sort subdirs by size
- echo "!du -sh /usr/local/share/*/ | sort -rh"; du -sh /usr/local/share/*/ | sort -rh
- echo "!du -sh /opt/*/ | sort -rh"; du -sh /opt/*/ | sort -rh
- sudo rm -rf /usr/share/dotnet
- sudo rm -rf /usr/share/swift
- sudo rm -rf /usr/share/miniconda
- sudo rm -rf /usr/local/share/powershell
- sudo rm -rf /usr/local/share/chromium
- sudo rm -rf /opt/hostedtoolcache
- sudo rm -rf /opt/az
- sudo rm -rf /opt/microsoft
- sudo apt-get clean
- echo "!df -h ~ after free up"; df -h ~
- - name: Build
- run: |
- #set -x # Echo commands
- echo "Current dir: $PWD"
- #echo '!which java';which java # Where is Java executable
- #echo '!java -version';java -version # Print Java version
- #echo '!cmake --version';cmake --version # Print CMake version
- echo '!env';env # Print all environment variables
- # SDK contains obsolete sdkmanager by default ($ANDROID_SDK_ROOT/tools/bin/sdkmanager),
- # so download the latest version manually
- # https://developer.android.com/studio#command-tools
- wget -q -O tmp.zip https://dl.google.com/android/repository/commandlinetools-linux-8512546_latest.zip && unzip tmp.zip && rm tmp.zip
- # https://github.com/actions/runner-images/blob/main/images/linux/Ubuntu2004-Readme.md#environment-variables-3
- JAVA_HOME=$JAVA_HOME_11_X64
- ./cmdline-tools/bin/sdkmanager --sdk_root=${ANDROID_SDK_ROOT} \
- "cmdline-tools;latest" \
- | grep -v '\[.*\]' `# Hide progress bar` \
- || : # Catch error
- # We installed sdkmanager through sdkmanager, so delete the manually downloaded version
- rm -r cmdline-tools
- $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager \
- "platform-tools" \
- "build-tools;29.0.2" \
- "ndk;21.3.6528147" \
- "platforms;android-30" \
- "cmake;3.18.1" \
- | grep -v '\[.*\]' `# Hide progress bar` \
- || : #Catch error
-
- # Path to ninja
- PATH="$ANDROID_SDK_ROOT/cmake/3.18.1/bin:$PATH"
- echo '!ls -a $ANDROID_HOME';ls -a $ANDROID_HOME
- echo '!ls -a $ANDROID_HOME/platforms';ls -a $ANDROID_HOME/platforms
- echo '!ls -a $ANDROID_HOME/ndk';ls -a $ANDROID_HOME/ndk
- echo '!ls -a $ANDROID_HOME/build-tools';ls -a $ANDROID_HOME/build-tools
- cd engine_repo
- #URHO3D_LIB_TYPE=SHARED
- #./gradlew buildEnvironment
- #./gradlew build -x test
- ./gradlew build
- - name: Show remaining space
- if: ${{ always() }}
- run: echo "!df -h"; df -h # Disks usage
- ...
- # vi: set ts=2 sw=2 expandtab:
|