Skip to content

Manual Build iOS

Manual Build iOS #30

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