Compare commits

...
Author SHA1 Message Date
Dominik Sokal ba074a5250 updated CHANGELOG 2019-06-11 17:50:42 +02:00
Dominik Sokal 2ab445afc4 don't fail turtle-cli if manifest is falsy 2019-06-11 16:28:26 +02:00
Dominik Sokal fbc63fabcb fix setting up android shell app (sdk 33) 2019-06-11 15:34:42 +02:00
Stanisław Chmiela b89214fcc9 [android] Remove face detector and stripe from Android standalone builds (#84)
* [android] Update SDK33 tarball to remove face detector and payments stripe from enabled modules

* [changelog] Update CHANGELOG
2019-06-11 11:00:10 +02:00
Dominik Sokal 0142147a61 update CHANGELOG 2019-06-10 16:07:51 +02:00
Dominik Sokal 331c8edba7 Release 0.8.1 2019-06-10 15:43:09 +02:00
Wojciech Kozyra ed382e0d2c Update CHANGELOG.md 2019-06-10 13:57:43 +02:00
Wojciech Kozyra 3f0958845d read dependencies from expo package when resolving unimodules (#83)
* read dependencies from expo package when resolving unimodules

* Update CHANGELOG.md
2019-06-10 13:52:29 +02:00
Wojciech Kozyra 6e345757e3 Update CHANGELOG.md 2019-06-10 13:49:00 +02:00
Dominik Sokal 3588c5a5c4 don't move workingdir to /tmp 2019-06-10 12:57:03 +02:00
Stanisław Chmiela 1f94e38e60 Add support for universe-package.json-less shell apps everywhere (#82)
* Fix building SDK33 Android tarball without universe-package.json in single build mode

* Add CHANGELOG entry
2019-06-10 09:42:19 +02:00
9 changed files with 53 additions and 25 deletions

No files matched your search

+16 -2
View File
@@ -5,10 +5,24 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Changed
- Updated Android shell app for SDK33 to remove `expo-face-detector` and `expo-payments-stripe` from standalone builds.
- Updated Android shell app for SDK33 to get rid of `node_modules` for `tools-public`.
- From now on, `turtle-cli` installs dependencies for `tools-public` in shell apps for SDK versions < 33.
### Fixed
- Android builds with turtle-cli by installing all unmodules if `dependencies` is empty.
## [0.8.1] - 2019-06-10
### Changed
- Add expo dependencies when resolving unimodules.
### Fixed
- Support for Android tarballs without `universe-package.json`.
## [0.8.0] - 2019-06-07
### Added
- Turtle CLI logo to the project (created by [@zularizal](https://github.com/zularizal))!
- Added shell apps for SDK 33.
- Support for Android App Bundles
- Shell apps for SDK 33.
- Support for Android App Bundles.
### Changed
- Updated Android shell app for SDK 32 to fix AppAuth issue (https://github.com/expo/expo/pull/4115) and to fix a newer than expected JSC version.
- Default value for build timeout to 15 minutes.
+7 -7
View File
@@ -100,12 +100,12 @@ RUN rm gradle-4.4-all.zip
ENV GRADLE_HOME /usr/local/gradle-4.4
ENV PATH ${GRADLE_HOME}/bin:$PATH
ADD . /app
ADD . /app/turtle
RUN mv /app/workingdir /tmp && \
for SDK_VERSION in `ls /tmp/workingdir/android/`; do \
RUN mv /app/turtle/workingdir /app && \
for SDK_VERSION in `ls /app/workingdir/android/`; do \
echo "preparing $SDK_VERSION shell app" && \
cd /tmp/workingdir/android/$SDK_VERSION && \
cd /app/workingdir/android/$SDK_VERSION && \
if [ -f universe-package.json ]; then \
mv package.json exponent-package.json && \
mv universe-package.json package.json && \
@@ -116,11 +116,11 @@ RUN mv /app/workingdir /tmp && \
yarn install; \
fi \
; done && \
mv /tmp/workingdir /app
mv /app/workingdir /app/turtle
ENV NODE_ENV "production"
ENV TURTLE_WORKING_DIR_PATH /app/workingdir/
ENV TURTLE_WORKING_DIR_PATH /app/turtle/workingdir/
WORKDIR /app
WORKDIR /app/turtle
CMD ["node", "./build/server.js"]
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "turtle-cli",
"version": "0.8.0",
"version": "0.8.1",
"description": "The command-line tool for building standalone Expo apps",
"preferGlobal": true,
"scripts": {
+4
View File
@@ -61,6 +61,10 @@ setup_remote() {
mv $sdk/package.json $sdk/exponent-package.json
mv $sdk/universe-package.json $sdk/package.json
cd $sdk && yarn
else
if [[ -f "$sdk/package.json" ]]; then
cd $sdk && yarn
fi
fi
done
}
+1 -1
View File
@@ -1 +1 @@
s3://exp-artifacts/android-shell-builder-86974c7df1fc9db46f02b59f4a663b45e2f7a2af.tar.gz
s3://exp-artifacts/android-shell-builder-e244e865ed8cb8e20d29ea00b6373845d1c61068.tar.gz
+17 -9
View File
@@ -67,18 +67,26 @@ function formatShellAppTarballUriPath(sdkMajorVersion: string) {
return path.join(config.directories.shellTarballsDir, PLATFORMS.ANDROID, `sdk${sdkMajorVersion}`);
}
async function _shellAppPostDownloadAction(workingdir: string) {
async function _shellAppPostDownloadAction(sdkVersion: string, workingdir: string) {
const inWorkingdir = (filename: string) => path.join(workingdir, filename);
await fs.move(inWorkingdir('package.json'), inWorkingdir('exponent-package.json'));
await fs.move(inWorkingdir('universe-package.json'), inWorkingdir('package.json'));
await _installNodeModules(workingdir);
await fs.move(inWorkingdir('package.json'), inWorkingdir('universe-package.json'));
await fs.move(inWorkingdir('exponent-package.json'), inWorkingdir('package.json'));
if (await fs.pathExists(inWorkingdir('universe-package.json'))) {
// legacy shell app built from universe
await fs.move(inWorkingdir('package.json'), inWorkingdir('exponent-package.json'));
await fs.move(inWorkingdir('universe-package.json'), inWorkingdir('package.json'));
await _installNodeModules(workingdir);
await fs.move(inWorkingdir('package.json'), inWorkingdir('universe-package.json'));
await fs.move(inWorkingdir('exponent-package.json'), inWorkingdir('package.json'));
} else {
// new shell app built from expo or not
await _installNodeModules(workingdir);
}
// TODO: remove following lines after upgrading android shell app
const toolsPublicDir = path.join(workingdir, 'tools-public');
await _installNodeModules(toolsPublicDir);
// TODO: remove this after making sure that we don't need node_modules in tools-public for older sdks
if (ExponentTools.parseSdkMajorVersion(sdkVersion) < 33) {
const toolsPublicDir = path.join(workingdir, 'tools-public');
await _installNodeModules(toolsPublicDir);
}
}
async function _installNodeModules(cwd: string) {
+2 -2
View File
@@ -17,7 +17,7 @@ interface IShellAppFormaters {
formatShellAppTarballUriPath: (sdkMajorVersion: string) => string;
}
type PostDownloadAction = (workingdir: string) => void;
type PostDownloadAction = (sdkVersion: string, workingdir: string) => void;
export async function checkSystem(requiredTools: IToolDefinition[]) {
await ensureToolsAreInstalled(requiredTools);
@@ -35,7 +35,7 @@ export async function ensureShellAppIsPresent(
l.info(`shell app for SDK ${sdkVersion} doesn't exist, downloading...`);
await _downloadShellApp(sdkVersion, workingdir, formatters);
if (postDownloadAction) {
await postDownloadAction(workingdir);
await postDownloadAction(sdkVersion, workingdir);
}
}
+1 -1
View File
@@ -75,7 +75,7 @@ async function runShellAppBuilder(
logger.info({ buildPhase: 'resolve native modules' }, 'Resolving universal modules dependencies');
const enabledModules = semver.satisfies(sdkVersion, '>= 33.0.0')
? await resolveNativeModules(workingDir, manifest.dependencies)
? await resolveNativeModules(workingDir, manifest && manifest.dependencies)
: null;
try {
+4 -2
View File
@@ -44,9 +44,11 @@ export async function resolveNativeModules(workingdir: string, packages?: string
async function readCorePackages(workingdir: string) {
const pkgJsonPath = path.join(workingdir, 'node_modules', 'react-native-unimodules', 'package.json');
if (await fs.pathExists(pkgJsonPath)) {
const expoPkgJsonPath = path.join(workingdir, 'packages', 'expo', 'package.json');
if (await fs.pathExists(pkgJsonPath) && await fs.pathExists(expoPkgJsonPath)) {
const packageJson = JSON.parse(await fs.readFile(pkgJsonPath, 'utf-8'));
return keys(packageJson.dependencies);
const expoPackageJson = JSON.parse(await fs.readFile(expoPkgJsonPath, 'utf-8'));
return keys(packageJson.dependencies).concat(keys(expoPackageJson.dependencies));
} else {
logger.warn('No core packages detected');
return [];