-
Notifications
You must be signed in to change notification settings - Fork 25
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #224 from klarna/improved-ci
Improved Workflows
- Loading branch information
Showing
17 changed files
with
326 additions
and
547 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
name: Setup | ||
description: Setup Node.js and install dependencies | ||
|
||
runs: | ||
using: composite | ||
steps: | ||
- name: Setup Node.js | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: '18.17.1' | ||
cache: 'yarn' | ||
|
||
- name: Cache dependencies | ||
id: yarn-cache | ||
uses: actions/cache@v3 | ||
with: | ||
path: | | ||
**/node_modules | ||
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}-${{ hashFiles('**/package.json') }} | ||
restore-keys: | | ||
${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | ||
${{ runner.os }}-yarn- | ||
- name: Install dependencies | ||
if: steps.yarn-cache.outputs.cache-hit != 'true' | ||
run: | | ||
yarn install --cwd TestApp --frozen-lockfile | ||
yarn install --frozen-lockfile | ||
shell: bash |
This file was deleted.
Oops, something went wrong.
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
name: Library | ||
on: | ||
push: | ||
branches: | ||
- '**' | ||
|
||
jobs: | ||
lint: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Setup | ||
uses: ./.github/actions/setup | ||
|
||
- name: Lint files | ||
run: | | ||
yarn lint | ||
yarn TestApp lint | ||
- name: Typecheck files | ||
run: yarn typecheck | ||
|
||
test: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Setup | ||
uses: ./.github/actions/setup | ||
|
||
- name: Run unit tests | ||
run: yarn test --maxWorkers=2 --coverage | ||
|
||
build-library: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Setup | ||
uses: ./.github/actions/setup | ||
|
||
- name: Build package | ||
run: yarn prepack |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,141 @@ | ||
name: Native Tests & Apps | ||
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
pull_request: | ||
branches: | ||
- master | ||
|
||
jobs: | ||
build-android: | ||
runs-on: ubuntu-latest | ||
env: | ||
TURBO_CACHE_DIR: .turbo/android | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Setup | ||
uses: ./.github/actions/setup | ||
|
||
- name: Cache turborepo for Android | ||
uses: actions/cache@v3 | ||
with: | ||
path: ${{ env.TURBO_CACHE_DIR }} | ||
key: ${{ runner.os }}-turborepo-android-${{ hashFiles('**/yarn.lock') }} | ||
restore-keys: | | ||
${{ runner.os }}-turborepo-android- | ||
- name: Check turborepo cache for Android | ||
run: | | ||
TURBO_CACHE_STATUS=$(node -p "($(yarn --silent turbo run build:android --cache-dir="${{ env.TURBO_CACHE_DIR }}" --dry=json)).tasks.find(t => t.task === 'build:android').cache.status") | ||
if [[ $TURBO_CACHE_STATUS == "HIT" ]]; then | ||
echo "turbo_cache_hit=1" >> $GITHUB_ENV | ||
fi | ||
# setup JDK environment | ||
- name: Set up our JDK environment | ||
uses: actions/setup-java@v3 | ||
with: | ||
distribution: temurin | ||
java-version: 11 | ||
|
||
- name: Finalize Android SDK | ||
if: env.turbo_cache_hit != 1 | ||
run: | | ||
/bin/bash -c "yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses > /dev/null" | ||
- name: Cache Gradle | ||
if: env.turbo_cache_hit != 1 | ||
uses: actions/cache@v3 | ||
with: | ||
path: | | ||
~/.gradle/wrapper | ||
~/.gradle/caches | ||
key: ${{ runner.os }}-gradle-${{ hashFiles('TestApp/android/gradle/wrapper/gradle-wrapper.properties') }} | ||
restore-keys: | | ||
${{ runner.os }}-gradle- | ||
- name: Run Unit Tests for Android | ||
run: yarn test:android | ||
|
||
- name: Bundle TestApp JS for Android | ||
run: mkdir TestApp/android/app/src/main/assets && yarn TestApp bundle:android | ||
|
||
- name: Build TestApp for Android | ||
run: | | ||
yarn turbo run build:android --cache-dir="${{ env.TURBO_CACHE_DIR }}" | ||
build-ios: | ||
runs-on: macos-latest | ||
env: | ||
TURBO_CACHE_DIR: .turbo/ios | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Setup | ||
uses: ./.github/actions/setup | ||
|
||
- name: Cache turborepo for iOS | ||
uses: actions/cache@v3 | ||
with: | ||
path: ${{ env.TURBO_CACHE_DIR }} | ||
key: ${{ runner.os }}-turborepo-ios-${{ hashFiles('**/yarn.lock') }} | ||
restore-keys: | | ||
${{ runner.os }}-turborepo-ios- | ||
- name: Check turborepo cache for iOS | ||
run: | | ||
TURBO_CACHE_STATUS=$(node -p "($(yarn --silent turbo run build:ios --cache-dir="${{ env.TURBO_CACHE_DIR }}" --dry=json)).tasks.find(t => t.task === 'build:ios').cache.status") | ||
if [[ $TURBO_CACHE_STATUS == "HIT" ]]; then | ||
echo "turbo_cache_hit=1" >> $GITHUB_ENV | ||
fi | ||
- name: Cache Lib cocoapods | ||
if: env.turbo_cache_hit != 1 | ||
id: cocoapods-cache-lib | ||
uses: actions/cache@v3 | ||
with: | ||
path: | | ||
ios/Pods | ||
key: ${{ runner.os }}-cocoapods-${{ hashFiles('ios/Podfile') }} | ||
restore-keys: | | ||
${{ runner.os }}-cocoapods- | ||
- name: Install Lib cocoapods | ||
run: | | ||
yarn pods | ||
env: | ||
NO_FLIPPER: 1 | ||
|
||
- name: Run Unit Tests for iOS | ||
run: yarn test:ios | ||
|
||
- name: Cache TestApp cocoapods | ||
if: env.turbo_cache_hit != 1 | ||
id: cocoapods-cache | ||
uses: actions/cache@v3 | ||
with: | ||
path: | | ||
TestApp/**/ios/Pods | ||
key: ${{ runner.os }}-cocoapods-${{ hashFiles('TestApp/ios/Podfile.lock') }} | ||
restore-keys: | | ||
${{ runner.os }}-cocoapods- | ||
- name: Install TestApp cocoapods | ||
run: | | ||
yarn TestApp pods | ||
env: | ||
NO_FLIPPER: 1 | ||
|
||
- name: Bundle TestApp JS for iOS | ||
run: yarn TestApp bundle:ios | ||
|
||
- name: Build TestApp for iOS | ||
run: | | ||
yarn turbo run build:ios --cache-dir="${{ env.TURBO_CACHE_DIR }}" |
Oops, something went wrong.