diff --git a/build.sh b/build.sh index 91b287e..08665c6 100755 --- a/build.sh +++ b/build.sh @@ -1,12 +1,6 @@ #!/bin/bash -set -e -podman=`which podman || true` - -if [ -z $podman ]; then - echo "podman needs to be in PATH for this script to work." - exit 1 -fi +source $(dirname "$0")/setup.sh if [ -z "$1" -o -z "$2" ]; then echo "Usage: $0 " @@ -45,36 +39,51 @@ fi mkdir -p logs -# You can add --no-cache as an option to podman_build below to rebuild all containers from scratch -export podman_build="$podman build --build-arg img_version=${img_version} -v ${files_root}:/root/files:z" +"$podman" build -t godot-fedora:${img_version} -f Dockerfile.base . 2>&1 | tee logs/base.log -$podman build -t godot-fedora:${img_version} -f Dockerfile.base . 2>&1 | tee logs/base.log -$podman_build -t godot-export:${img_version} -f Dockerfile.export . 2>&1 | tee logs/export.log +podman_build() { + # You can add --no-cache as an option to podman_build below to rebuild all containers from scratch. + "$podman" build \ + --build-arg img_version=${img_version} \ + -v "${files_root}":/root/files:z \ + -t godot-"$1:${img_version}" \ + -f Dockerfile."$1" . \ + 2>&1 | tee logs/"$1".log +} -$podman_build -t godot-linux:${img_version} -f Dockerfile.linux . 2>&1 | tee logs/linux.log -$podman_build -t godot-windows:${img_version} -f Dockerfile.windows . 2>&1 | tee logs/windows.log -$podman_build -t godot-web:${img_version} -f Dockerfile.web . 2>&1 | tee logs/web.log -$podman_build -t godot-android:${img_version} -f Dockerfile.android . 2>&1 | tee logs/android.log +podman_build export + +podman_build linux +podman_build windows + +podman_build web +podman_build android XCODE_SDK=14.1 OSX_SDK=13.0 IOS_SDK=16.1 -if [ ! -e ${files_root}/MacOSX${OSX_SDK}.sdk.tar.xz ] || [ ! -e ${files_root}/iPhoneOS${IOS_SDK}.sdk.tar.xz ] || [ ! -e ${files_root}/iPhoneSimulator${IOS_SDK}.sdk.tar.xz ]; then - if [ ! -e ${files_root}/Xcode_${XCODE_SDK}.xip ]; then +if [ ! -e "${files_root}"/MacOSX${OSX_SDK}.sdk.tar.xz ] || [ ! -e "${files_root}"/iPhoneOS${IOS_SDK}.sdk.tar.xz ] || [ ! -e "${files_root}"/iPhoneSimulator${IOS_SDK}.sdk.tar.xz ]; then + if [ ! -e "${files_root}"/Xcode_${XCODE_SDK}.xip ]; then echo "files/Xcode_${XCODE_SDK}.xip is required. It can be downloaded from https://developer.apple.com/download/more/ with a valid apple ID." exit 1 fi echo "Building OSX and iOS SDK packages. This will take a while" - $podman_build -t godot-xcode-packer:${img_version} -f Dockerfile.xcode . 2>&1 | tee logs/xcode.log - $podman run -it --rm -v ${files_root}:/root/files:z -e XCODE_SDKV="${XCODE_SDK}" -e OSX_SDKV="${OSX_SDK}" -e IOS_SDKV="${IOS_SDK}" godot-xcode-packer:${img_version} 2>&1 | tee logs/xcode_packer.log + podman_build xcode + "$podman" run -it --rm \ + -v "${files_root}":/root/files:z \ + -e XCODE_SDKV="${XCODE_SDK}" \ + -e OSX_SDKV="${OSX_SDK}" \ + -e IOS_SDKV="${IOS_SDK}" \ + godot-xcode:${img_version} \ + 2>&1 | tee logs/xcode_packer.log fi -$podman_build -t godot-osx:${img_version} -f Dockerfile.osx . 2>&1 | tee logs/osx.log -$podman_build -t godot-ios:${img_version} -f Dockerfile.ios . 2>&1 | tee logs/ios.log +podman_build osx +podman_build ios if [ "${build_msvc}" != "0" ]; then - if [ ! -e ${files_root}/msvc2017.tar ]; then + if [ ! -e "${files_root}"/msvc2017.tar ]; then echo echo "files/msvc2017.tar is missing. This file can be created on a Windows 7 or 10 machine by downloading the 'Visual Studio Tools' installer." echo "here: https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2017" @@ -86,5 +95,5 @@ if [ "${build_msvc}" != "0" ]; then exit 1 fi - $podman_build -t godot-msvc:${img_version} -f Dockerfile.msvc . 2>&1 | tee logs/msvc.log + podman_build msvc fi diff --git a/setup.sh b/setup.sh new file mode 100755 index 0000000..9f986da --- /dev/null +++ b/setup.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +set -e + +podman=`which podman || true` + +if [ -z "$podman" ]; then + echo "podman needs to be in PATH for this script to work." + exit 1 +fi diff --git a/upload.sh b/upload.sh index 88110dd..56bcac8 100755 --- a/upload.sh +++ b/upload.sh @@ -1,11 +1,6 @@ #!/bin/bash -set -e - -podman=podman -if ! which $podman; then - podman=docker -fi +source $(dirname "$0")/setup.sh img_version=$1 registry=$2 @@ -19,13 +14,13 @@ if [ -z "${registry}" ]; then registry=registry.prehensile-tales.com fi -$podman push godot-export:${img_version} ${registry}/godot/export -$podman push godot-linux:${img_version} ${registry}/godot/linux -$podman push godot-windows:${img_version} ${registry}/godot/windows -$podman push godot-web:${img_version} ${registry}/godot/web -$podman push godot-xcode-packer:${img_version} ${registry}/godot/xcode-packer +"$podman" push godot-export:${img_version} ${registry}/godot/export +"$podman" push godot-linux:${img_version} ${registry}/godot/linux +"$podman" push godot-windows:${img_version} ${registry}/godot/windows +"$podman" push godot-web:${img_version} ${registry}/godot/web +"$podman" push godot-xcode:${img_version} ${registry}/godot/xcode -$podman push godot-android:${img_version} ${registry}/godot-private/android -$podman push godot-ios:${img_version} ${registry}/godot-private/ios -$podman push godot-osx:${img_version} ${registry}/godot-private/macosx -$podman push godot-msvc:${img_version} ${registry}/godot-private/uwp +"$podman" push godot-android:${img_version} ${registry}/godot-private/android +"$podman" push godot-ios:${img_version} ${registry}/godot-private/ios +"$podman" push godot-osx:${img_version} ${registry}/godot-private/macosx +"$podman" push godot-msvc:${img_version} ${registry}/godot-private/uwp