Manual Build iOS #30
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Manual Build iOS | |
on: | |
workflow_dispatch: | |
inputs: | |
tag: | |
description: 'Tag to publish the build' | |
required: true | |
godot_version: | |
description: 'Godot version to be builded' | |
required: true | |
jobs: | |
ios-template: | |
name: Compiling for iOS | |
runs-on: "macos-latest" | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Download, copy and unzip the lastest Google Mobile Ads SDK on release binaries and iOS module folder | |
run: | | |
curl -LO https://github.com/Poing-Studios/godot-admob-ios/releases/download/${{ github.event.inputs.tag }}/googlemobileadssdkios.zip | |
- name: Verify current inputs godot_version | |
run: | | |
CURRENT_GODOT_VERSION=${{ github.event.inputs.godot_version }} | |
if [ ${#CURRENT_GODOT_VERSION} -eq 1 ]; then CURRENT_GODOT_VERSION="${CURRENT_GODOT_VERSION}.0"; fi | |
echo "CURRENT_GODOT_VERSION=${CURRENT_GODOT_VERSION}" >> $GITHUB_ENV | |
# Upload cache on completion and check it out now | |
- name: Load .scons_cache directory | |
id: ios-template-cache | |
uses: actions/cache@v2 | |
with: | |
path: ${{github.workspace}}/godot-${{env.CURRENT_GODOT_VERSION}}-stable/.scons_cache/ | |
key: ${{github.job}}-master-${{github.ref}}-${{github.sha}} | |
restore-keys: | | |
${{github.job}}-master-${{github.ref}}-${{github.sha}} | |
${{github.job}}-master-${{github.ref}} | |
${{github.job}}-master | |
- name: Set up Python 3.x | |
uses: actions/setup-python@v2 | |
with: | |
# Semantic version range syntax or exact version of a Python version | |
python-version: '3.x' | |
# Optional - x64 or x86 architecture, defaults to x64 | |
architecture: 'x64' | |
- name: Configuring Python packages | |
run: | | |
python -c "import sys; print(sys.version)" | |
python -m pip install scons | |
python --version | |
scons --version | |
- name: Prepare 'bin/, lib/, godot' folders | |
run: | | |
rm -rf ./bin/ && mkdir ./bin/ | |
rm -rf ./plugin/admob/lib/ && mkdir ./plugin/admob/lib/ | |
- name: Download and unzip Stable Godot extracted headers | |
run: | | |
FULL_PATHNAME_DOWNLOAD_GODOT_EXTRACTED_HEADERS="https://github.com/godotengine/godot/releases/download/${{env.CURRENT_GODOT_VERSION}}-stable/godot-${{env.CURRENT_GODOT_VERSION}}-stable.tar.xz" | |
curl -LO $FULL_PATHNAME_DOWNLOAD_GODOT_EXTRACTED_HEADERS | |
tar -xf godot-${{env.CURRENT_GODOT_VERSION}}-stable.tar.xz | |
mv godot-${{env.CURRENT_GODOT_VERSION}}-stable godot | |
- name: Generate headers | |
run: | | |
if [[ ${{env.CURRENT_GODOT_VERSION}} =~ ^3\..* ]]; then | |
major_version=$(echo ${{env.CURRENT_GODOT_VERSION}} | sed -E 's/^([0-9]+)\..*$/\1.x/g') | |
else | |
major_version=${{env.CURRENT_GODOT_VERSION}} | |
fi | |
echo "Major version: $major_version" | |
./scripts/generate_headers.sh ${major_version} || true | |
- name: Copy and unzip the Google Mobile Ads SDK on release binaries and iOS module folder | |
run: | | |
mkdir -p godot-${{env.CURRENT_GODOT_VERSION}}-stable/bin/release/ | |
unzip googlemobileadssdkios.zip -d plugin/admob/lib/ | |
cd plugin/admob/lib/ | |
cd */ | |
mv * ../ | |
- name: Compiles the Source Code | |
env: | |
SCONS_CACHE: ${{github.workspace}}/godot-${{env.CURRENT_GODOT_VERSION}}-stable/.scons_cache/ | |
run: | | |
VERSION_TO_BUILD=0 | |
if [ ${CURRENT_GODOT_VERSION:0:1} -gt 3 ] | |
then | |
VERSION_TO_BUILD=${CURRENT_GODOT_VERSION:0:3} | |
else | |
VERSION_TO_BUILD=${CURRENT_GODOT_VERSION:0:1}.x | |
fi | |
./scripts/release_static_library.sh ${VERSION_TO_BUILD} | |
- name: Compress the binaries | |
run: | | |
if [ 1 -eq "$(echo "${CURRENT_GODOT_VERSION:0:3} < 3.4" | bc)" ] | |
then | |
cp ./plugin/admob/config/3.3\<3.4/admob.gdip ./bin/release/admob | |
fi | |
cd bin/release | |
zip -r ../../ios-template-v${{env.CURRENT_GODOT_VERSION}}.zip admob | |
- name: Upload artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: ios-template-v${{env.CURRENT_GODOT_VERSION}}.zip | |
path: ios-template-v${{env.CURRENT_GODOT_VERSION}}.zip | |
- name: Upload binaries to release | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: ios-template-v${{env.CURRENT_GODOT_VERSION}}.zip | |
tag: ${{ github.event.inputs.tag }} | |
overwrite: true |