EAS / Release / Expo Update #4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: EAS / Release / Expo Update | |
on: | |
workflow_dispatch: | |
jobs: | |
build: | |
name: Checkout and EAS Update | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18.x | |
cache: yarn | |
cache-dependency-path: '**/yarn.lock' | |
- name: Setup Expo and EAS | |
uses: expo/expo-github-action@v8 | |
with: | |
eas-version: latest | |
token: ${{ secrets.EXPO_TOKEN }} | |
- name: eas update flow for release branch versions | |
run: | | |
# Read the Major-Minor version from the branch app.json | |
CURRENT_APP_JSON_VERSION=$(jq -r '.expo.version' app.json) | |
MAJOR_MINOR=${CURRENT_APP_JSON_VERSION%.*} | |
echo "Current App version: ${CURRENT_APP_JSON_VERSION}" | |
echo "Current Major-Minor version: ${MAJOR_MINOR}" | |
# get all the patch releases for this major-minor release | |
RELEASES_JSON_FILE="app.json" | |
PATCHES_KEY=".releases.\"release-${MAJOR_MINOR}\"" | |
PATCHES_VAL=$( jq -r "${PATCHES_KEY}[]" "${RELEASES_JSON_FILE}" 2>/dev/null) | |
if [[ -z "$PATCHES_VAL" ]]; then | |
echo "No patch releases found for release: ${RELEASE}" | |
exit 1 | |
fi | |
for PATCH_RELEASE in ${PATCHES_VAL}; do | |
# update app.json | |
jq --arg version "${PATCH_RELEASE}" '.expo.version = $version' app.json > app.temp.json | |
mv app.temp.json app.json | |
# display app.json version | |
EAS_UPDATE_APP_JSON_VERSION=$(jq -r '.expo.version' app.json) | |
echo "app.json version before eas update is = ${EAS_UPDATE_APP_JSON_VERSION}" | |
# perform eas update | |
echo "Performing eas update for version: ${PATCH_RELEASE}" | |
# upload the source maps | |
echo "Uploading sourcemap for version: ${PATCH_RELEASE}" | |
done |