Skip to content
This repository has been archived by the owner on Oct 15, 2022. It is now read-only.

Docker image to build expo projects without usage of expo.dev services

Notifications You must be signed in to change notification settings

steve192/expo-turtle-builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Warning This repository is deprecated. You should take a look at Expo EAS to build your future applications

expo-turtle-builder

Github https://github.com/Steve192/expo-turtle-builder

Docker image to build expo projects for android (iOS planned) without usage of expo.dev services.

This includes the need to publish on expo using expo publish (planned feature) aswell as the use of the expo build infrastructure.

When executing expo-turtle-builder, an apk/aab file will be built to output/android.<aab|apk>

Usage

Important: run npm i (or npm ci) before calling the expo-turtle-builder

Inside container:

# Needed (planned: only if app not not publicly available at expo.dev)
export EXPO_USERNAME=xxx
export EXPO_PASSWORD=xxx

# Needed if EXPO_USERNAME and EXPO_PASSWORD are not provided or keystore is not stored at expo.dev
export EXPO_ANDROID_KEYSTORE_BASE64=xxx
export EXPO_ANDROID_KEYSTORE_ALIAS=xxx
export EXPO_ANDROID_KEYSTORE_PASSWORD=xxx
export EXPO_ANDROID_KEY_PASSWORD=xxx

expo-turtle-builder  \
    --target <android|ios> \
    --format <apk|app-bundle>  \
    --public-url <optional url> \

Using the container on a directory

npm ci

docker run -it --rm \
	-v $(pwd):/build \
	-e EXPO_USERNAME=<your expo username> \
	-e EXPO_PASSWORD=<your expo password> \
	steve192/expo-turtle-builder \
	expo-turtle-builder --target android --format app-bundle

In gitlab ci

build-android:
  stage: build
  image: steve192/expo-turtle-builder
  variables:
    # Token not supported by turtle, store variables in CI variables section of your project
    EXPO_USERNAME: $EXPO_USERNAME
    EXPO_PASSWORD: $EXPO_PASSWORD
  script:
    - npm ci
    - expo-turtle-builder --target android --format app-bundle
  artifacts:
    paths:
      - output/android*

Parameters

target

Do you want to build for android or iOS (iOS is not supported yet)

format

Do you want to build an apk or an app-bundle

public-url

Provide if you are not providing EXPO_USERNAME or EXPO_PASSWORD to know where your app is hosted.

If you are providing a login, the app.json is used to determine your app, so this parameter is not needed.

If you are not hosting your app on expo.dev, provide this parameter aswell

ENV Variables

Provide the following env variables:

EXPO_USERNAME (optional)

Required if public-url is not set or your project is a private expo project

Your expo username

EXPO_PASSWORD (optional)

Required if public-url is not set or your project is a private expo project

PLANNED BUT NOT SUPPORTED/TESTED YET:

Your expo password

EXPO_ANDROID_KEYSTORE_BASE64 (optional)

Required if your keystore is not stored at expo.dev

Your android keystore encoded as base64. To encode your keystore use echo your_keystore_file | base64

EXPO_ANDROID_KEYSTORE_ALIAS (optional)

Required if your keystore is not stored at expo.dev

The alias of your key in your keystore

EXPO_ANDROID_KEYSTORE_PASSWORD (optional)

Required if your keystore is not stored at expo.dev

Android keystore password

EXPO_ANDROID_KEY_PASSWORD (optional)

Required if your keystore is not stored at expo.dev Android key password

About

Docker image to build expo projects without usage of expo.dev services

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published