Skip to content

Commit

Permalink
GitHub Actions Builds and Offline Builds Alpha (coronalabs#59)
Browse files Browse the repository at this point in the history
Lots of changes. Most importantly:
- moved windows to new toolset & Visual Studio 2019
- added plugin collector system, which is shared among iOS, tvOS, Android, Windows and maOS
- not requiring internet connection or coronalabs.com to be there.
  • Loading branch information
Shchvova authored May 1, 2020
1 parent a77b30f commit b9a559d
Show file tree
Hide file tree
Showing 136 changed files with 4,300 additions and 2,034 deletions.
480 changes: 480 additions & 0 deletions .github/workflows/build.yml

Large diffs are not rendered by default.

16 changes: 16 additions & 0 deletions .github/workflows/remove-old-artifacts.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: Remove old artifacts

on:
repository_dispatch:
types:
- purge

jobs:
remove-old-artifacts:
runs-on: ubuntu-latest
steps:
- name: Remove old artifacts
uses: c-hive/gha-remove-artifacts@v1
with:
age: ${{ github.event.client_payload.age || '1 week' }}
skip-tags: false
16 changes: 15 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -267,5 +267,19 @@ external/facebook-ios-sdk
external/facebook-android-sdk
plugins/ads-inmobi
plugins/ads-inneractive
tools/buildsys-ios
commit-email.sh
platform/resources/iostemplate
platform/tvos/license.ccdata

platform/iphone/*.tar.bz
platform/tvos/*.tar.bz
/*_output.zip
/corona.tar.gz
/CoronaNative.tar.gz
sdk/dmg/bgp.png
sdk/dmg/[email protected]
sdk/dmg/processed_appdmg.json
external/JNLua/.settings/
external/JNLua/target/
external/JNLua/.classpath
external/JNLua/.project
63 changes: 43 additions & 20 deletions bin/mac/build_dmg.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
set -e # exit on any error

TOOLSPATH=$(dirname "$0")
PLATFORM_MAC="$TOOLSPATH"/../../platform/mac
SRCROOT="$TOOLSPATH/../.."
PLATFORM_MAC="$SRCROOT/platform/mac"
PRODUCT_DIR=Corona
DSTDIR=$(date "+Corona.%Y.%m.%d")
CUSTOM_ID=""
Expand Down Expand Up @@ -93,47 +94,53 @@ cd "$PLATFORM_MAC"
if [ "${PIPESTATUS[0]}" -ne 0 ] #exit if the build script failed. $? gives us the output from tee not build.sh
then
echo "BUILD ERROR: Could not build 'Corona Simulator.app'"
exit -1
exit 22
fi
)

mkdir "$TMPPATH"

mkdir "$TMPPATH/${PRODUCT_DIR}"
ditto "$TOOLSPATH/../../platform/resources/icons/CoronaSDK-DMG-DS_Store" "$TMPPATH"/.DS_Store
bin/mac/seticon "$TMPPATH/${PRODUCT_DIR}" "$TOOLSPATH/../../platform/resources/icons/CoronaIcon-Folder.png"
ditto "$SRCROOT/platform/resources/icons/CoronaSDK-DMG-DS_Store" "$TMPPATH"/.DS_Store
bin/mac/seticon "$TMPPATH/${PRODUCT_DIR}" "$SRCROOT/platform/resources/icons/CoronaIcon-Folder.png"

ditto -v -X "$TOOLSPATH/Corona Simulator.app" "$TMPPATH/${PRODUCT_DIR}/Corona Simulator.app"
mkdir "${TMPPATH}/${PRODUCT_DIR}/${RESOURCE_DIR}"
cp -v "$TOOLSPATH"/{debugger,"Corona Terminal"} "${TMPPATH}/${PRODUCT_DIR}/${RESOURCE_DIR}"
cp -v "$TOOLSPATH"/../../platform/resources/icons/Documentation.html "$TMPPATH"/${PRODUCT_DIR}/
cp -v "$SRCROOT"/platform/resources/icons/Documentation.html "$TMPPATH"/${PRODUCT_DIR}/
ditto -v -X "$2"/${SAMPLECODE_DIR}/ "$TMPPATH/${PRODUCT_DIR}/${SAMPLECODE_DIR}/"

if [ -d "$TMPPATH/${PRODUCT_DIR}/${SAMPLECODE_DIR}/.hg" ] # helpful for test builds
then
rm -r "$TMPPATH/${PRODUCT_DIR}/${SAMPLECODE_DIR}/.hg"
fi

ditto -v -X "$2/${RESOURCE_DIR}" "$TMPPATH/${PRODUCT_DIR}/${RESOURCE_DIR}"
if [ -d "$2/${RESOURCE_DIR}" ]
then
ditto -v -X "$2/${RESOURCE_DIR}" "$TMPPATH/${PRODUCT_DIR}/${RESOURCE_DIR}"
fi

mkdir -p "$TMPPATH/${PRODUCT_DIR}/${RESOURCE_DIR}/Android"
cp -v -X "$SRCROOT"/platform/android/resources/debug.keystore "$TMPPATH/${PRODUCT_DIR}/${RESOURCE_DIR}/Android/"

if [ "$ENTERPRISE" != "" ]
then
(tar -C "$TMPPATH/${PRODUCT_DIR}/" -xf "$ENTERPRISE" && mv "$TMPPATH/${PRODUCT_DIR}/CoronaEnterprise" "$TMPPATH/${PRODUCT_DIR}/${NATIVE_DIR}" && ls "$TMPPATH/${PRODUCT_DIR}/${NATIVE_DIR}") || (echo "ERROR: failed to extract Enterprise" && exit 1)
ditto -v -X "$TOOLSPATH/../../sdk/dmg/Setup Corona Native.app" "$TMPPATH/${PRODUCT_DIR}/${NATIVE_DIR}/Setup Corona Native.app"
ditto -v -X "$TOOLSPATH/../../sdk/dmg/Setup Corona Enterprise.app" "$TMPPATH/${PRODUCT_DIR}/${NATIVE_DIR}/Setup Corona Enterprise.app"
cp -v "$TOOLSPATH/../../sdk/dmg/Setup Corona.icns" "$TMPPATH/${PRODUCT_DIR}/${NATIVE_DIR}/Setup Corona Native.app/Contents/Resources/applet.icns"
cp -v "$TOOLSPATH/../../sdk/dmg/Setup Corona.icns" "$TMPPATH/${PRODUCT_DIR}/${NATIVE_DIR}/Setup Corona Enterprise.app/Contents/Resources/applet.icns"
ditto -v -X "$SRCROOT/sdk/dmg/Setup Corona Native.app" "$TMPPATH/${PRODUCT_DIR}/${NATIVE_DIR}/Setup Corona Native.app"
ditto -v -X "$SRCROOT/sdk/dmg/Setup Corona Enterprise.app" "$TMPPATH/${PRODUCT_DIR}/${NATIVE_DIR}/Setup Corona Enterprise.app"
cp -v "$SRCROOT/sdk/dmg/Setup Corona.icns" "$TMPPATH/${PRODUCT_DIR}/${NATIVE_DIR}/Setup Corona Native.app/Contents/Resources/applet.icns"
cp -v "$SRCROOT/sdk/dmg/Setup Corona.icns" "$TMPPATH/${PRODUCT_DIR}/${NATIVE_DIR}/Setup Corona Enterprise.app/Contents/Resources/applet.icns"
xattr -cr "$TMPPATH/${PRODUCT_DIR}/${NATIVE_DIR}/Setup Corona Native.app"
xattr -cr "$TMPPATH/${PRODUCT_DIR}/${NATIVE_DIR}/Setup Corona Enterprise.app"
fi

# unfortunately, since macOS 10.12 resource forks can not be signed, so removing some icons
# bin/mac/seticon "$TMPPATH/${PRODUCT_DIR}/${RESOURCE_DIR}/debugger" "$TOOLSPATH/../../platform/resources/icons/CoronaIcon-Debugger.png"
# bin/mac/seticon "$TMPPATH/${PRODUCT_DIR}/${SAMPLECODE_DIR}" "$TOOLSPATH/../../platform/resources/icons/CoronaIcon-Folder.png"
# bin/mac/seticon "$TMPPATH/${PRODUCT_DIR}/${RESOURCE_DIR}" "$TOOLSPATH/../../platform/resources/icons/CoronaIcon-Folder.png"
bin/mac/seticon "$TMPPATH/${PRODUCT_DIR}/${NATIVE_DIR}" "$TOOLSPATH/../../platform/resources/icons/CoronaIcon-Folder.png"
bin/mac/seticon "$TMPPATH/${PRODUCT_DIR}/Documentation.html" "$TOOLSPATH/../../platform/resources/icons/CoronaIcon-Docs.png"
#bin/mac/seticon "$TMPPATH/${PRODUCT_DIR}/${RESOURCE_DIR}/Corona Terminal" "$TOOLSPATH/../../platform/resources/icons/CoronaIcon-Terminal.png"
# bin/mac/seticon "$TMPPATH/${PRODUCT_DIR}/${RESOURCE_DIR}/debugger" "$SRCROOT/platform/resources/icons/CoronaIcon-Debugger.png"
# bin/mac/seticon "$TMPPATH/${PRODUCT_DIR}/${SAMPLECODE_DIR}" "$SRCROOT/platform/resources/icons/CoronaIcon-Folder.png"
# bin/mac/seticon "$TMPPATH/${PRODUCT_DIR}/${RESOURCE_DIR}" "$SRCROOT/platform/resources/icons/CoronaIcon-Folder.png"
bin/mac/seticon "$TMPPATH/${PRODUCT_DIR}/${NATIVE_DIR}" "$SRCROOT/platform/resources/icons/CoronaIcon-Folder.png"
bin/mac/seticon "$TMPPATH/${PRODUCT_DIR}/Documentation.html" "$SRCROOT/platform/resources/icons/CoronaIcon-Docs.png"
#bin/mac/seticon "$TMPPATH/${PRODUCT_DIR}/${RESOURCE_DIR}/Corona Terminal" "$SRCROOT/platform/resources/icons/CoronaIcon-Terminal.png"
xcrun SetFile -a E "$TMPPATH/${PRODUCT_DIR}/Documentation.html" # hide extension


Expand Down Expand Up @@ -204,15 +211,17 @@ xcrun SetFile -a E "$TMPPATH/${PRODUCT_DIR}/Documentation.html" # hide extension


# this causes hdiutil create to generate corrupt filesystems for some reason
# ditto "$TOOLSPATH/../../platform/resources/icons/Applications-CoronaSDK-DS_Store" "$TMPPATH"/${PRODUCT_DIR}/.DS_Store
# ditto "$SRCROOT/platform/resources/icons/Applications-CoronaSDK-DS_Store" "$TMPPATH"/${PRODUCT_DIR}/.DS_Store

if [[ -d "$DOCSRC/Tools" ]]
then
ditto -v -X "$DOCSRC"/Tools "$TMPPATH"/${PRODUCT_DIR}/Tools
fi

RESULT_DIR="$DSTDIR/${PRODUCT_DIR}"
if [ "${BUILD_NUM}" != "" ] && [ "$DAILY_BUILD" == true ]
then
RESULT_DIR="$DSTDIR/${PRODUCT_DIR}${BUILD_NUM}"
mv "$TMPPATH"/${PRODUCT_DIR} "$TMPPATH/${PRODUCT_DIR}${BUILD_NUM}"
VOLUME_NAME=${PRODUCT_DIR}${BUILD_NUM}
ICON_NAME=${PRODUCT_DIR}${BUILD_NUM}
Expand All @@ -223,7 +232,7 @@ else
DMG_FILE=${PRODUCT_DIR}-${FULL_BUILD_NUM}-release.dmg
fi

BACKGROUND_PATH=$TOOLSPATH/../../sdk/dmg/CoronaBackground.png
BACKGROUND_PATH=$SRCROOT/sdk/dmg/CoronaBackground.png
WINDOW_WIDTH=620
WINDOW_HEIGHT=420
ICON_SIZE=128
Expand All @@ -240,9 +249,21 @@ then
TMPBACKGROUND=/tmp/CoronaBackground$$.png
convert sdk/dmg/CoronaBackground.png -pointsize 13 -stroke DarkGrey -fill DarkGrey -draw "text 39,387 '$FULL_BUILD_NUM'" "$TMPBACKGROUND"
BACKGROUND_PATH="$TMPBACKGROUND"

convert sdk/dmg/BG.png -pointsize 13 -stroke DarkGrey -fill DarkGrey -draw "text 39,387 '$FULL_BUILD_NUM'" sdk/dmg/bgp.png
convert sdk/dmg/[email protected] -pointsize 26 -stroke DarkGrey -fill DarkGrey -draw "text 78,774 '$FULL_BUILD_NUM'" sdk/dmg/[email protected]
else
cp sdk/dmg/BG.png sdk/dmg/bgp.png
cp sdk/dmg/[email protected] sdk/dmg/[email protected]
fi

"$TOOLSPATH"/create-dmg/create-dmg --volname "$VOLUME_NAME" --background "$BACKGROUND_PATH" --window-size $WINDOW_WIDTH $WINDOW_HEIGHT --app-drop-link $APP_X $APP_Y --icon "$ICON_NAME" $ICON_X $ICON_Y --icon-size $ICON_SIZE "$DMG_FILE" "$TMPPATH"
if [ -x "$(command -v appdmg)" ]
then
sed "s#XXXXXXXX#../../$RESULT_DIR#g ; s#YYYY#$FULL_BUILD_NUM#g" sdk/dmg/appdmg.json > sdk/dmg/processed_appdmg.json
appdmg sdk/dmg/processed_appdmg.json "$DMG_FILE"
else
"$TOOLSPATH"/create-dmg/create-dmg $JENKINS --volname "$VOLUME_NAME" --background "$BACKGROUND_PATH" --window-size $WINDOW_WIDTH $WINDOW_HEIGHT --app-drop-link $APP_X $APP_Y --icon "$ICON_NAME" $ICON_X $ICON_Y --icon-size $ICON_SIZE "$DMG_FILE" "$TMPPATH"
fi

mv -f "$DMG_FILE" "$DSTBASE"/"$DMG_FILE"
rm -f "$TMPBACKGROUND"
Expand All @@ -262,7 +283,9 @@ rm -rf "$TMPPATH" # Remove tmp folder

# Convert tmp dmg into read-only dmg and add license
hdiutil unflatten "$DSTBASE/$DMG_FILE"
"$TOOLSPATH/AddLicense" "$DSTBASE/$DMG_FILE" English "$TOOLSPATH/../../sdk/dmg/Corona_License.rtf"
"$TOOLSPATH/AddLicense" "$DSTBASE/$DMG_FILE" English "$SRCROOT/sdk/dmg/Corona_License.rtf"
hdiutil flatten "$DSTBASE/$DMG_FILE"

codesign --timestamp --deep --force --options runtime --strict --sign "Developer ID Application: Corona Labs Inc" "$DSTBASE/$DMG_FILE"
mkdir -p "$SRCROOT/output"
cp "$DSTBASE/$DMG_FILE" "$SRCROOT/output"
2 changes: 1 addition & 1 deletion external/live-libs
Submodule live-libs updated 141 files
5 changes: 0 additions & 5 deletions external/pthreads-w32-2-8-0-release/pthread.h
Original file line number Diff line number Diff line change
Expand Up @@ -109,12 +109,7 @@
/* Include everything */
#endif

#ifdef _UWIN
# define HAVE_STRUCT_TIMESPEC 1
# define HAVE_SIGNAL_H 1
# undef HAVE_CONFIG_H
# pragma comment(lib, "pthread")
#endif

/*
* -------------------------------------------------------------
Expand Down
33 changes: 33 additions & 0 deletions librtt/Rtt_HTTPClient.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
//////////////////////////////////////////////////////////////////////////////
//
// This file is part of the Corona game engine.
// For overview and more information on licensing please refer to README.md
// Home page: https://github.com/coronalabs/corona
// Contact: [email protected]
//
//////////////////////////////////////////////////////////////////////////////

#ifndef Rtt_HTTPClientPlatform_H__
#define Rtt_HTTPClientPlatform_H__

#include "Core/Rtt_Build.h"
#include "Core/Rtt_Types.h"
#include "Core/Rtt_String.h"
#include <map>
#include <string>

struct lua_State;

namespace Rtt {
struct HTTPClient {
static bool HttpDownload( const char* url, Rtt::String &resultData, String& errorMesg, const std::map<std::string, std::string>& headers );
static bool HttpDownloadFile( const char* url, const char *filename, String& errorMesg, const std::map<std::string, std::string>& headers );
static int fetch( lua_State *L );
static int download( lua_State *L );

static void registerFetcherModuleLoaders( lua_State *L );
};
}


#endif // _Rtt_Platform_H__
Loading

0 comments on commit b9a559d

Please sign in to comment.