Skip to content

fix(ci): build packages before other tasks #15

fix(ci): build packages before other tasks

fix(ci): build packages before other tasks #15

Workflow file for this run

name: CI/CD
on:
push:
branches:
- main
pull_request:
branches:
- main
merge_group:
types:
- checks_requested
concurrency: ${{ github.workflow }}-${{ github.ref }}
jobs:
build-lint-test:
name: Build packages, lint & run tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: 'true'
- name: Setup
uses: ./.github/actions/setup
- name: Lint files
run: pnpm run lint
- name: Typecheck files
run: pnpm run typecheck
- name: Run unit tests
run: pnpm run test --maxWorkers=2 --coverage
build-docs:
name: Build docs
runs-on: ubuntu-latest
needs: build-lint-test
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: 'true'
- name: Setup
uses: ./.github/actions/setup
- name: Build docs
run: pnpm run build:docs
- name: Upload docs artifact
uses: actions/upload-pages-artifact@v3
with:
path: docs/doc_build
deploy-docs:
permissions:
contents: read
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
needs: build-docs
runs-on: ubuntu-latest
name: Deploy docs
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
# TODO: enable building demo apps
# build-android:
# name: Build Android demo app
# runs-on: ubuntu-latest
# needs: [build-packages]
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# with:
# submodules: 'true'
# - name: Setup
# uses: ./.github/actions/setup
# - name: Build packages
# run: pnpm run build
# - name: Install JDK
# uses: actions/setup-java@v4
# with:
# distribution: 'zulu'
# java-version: '17'
# - name: Finalize Android SDK
# run: |
# /bin/bash -c "yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses > /dev/null"
# - name: Cache Gradle
# uses: actions/cache@v4
# with:
# path: |
# ~/.gradle/wrapper
# ~/.gradle/caches
# key: ${{ runner.os }}-gradle-${{ hashFiles('examples/rn-app/android/gradle/wrapper/gradle-wrapper.properties') }}
# restore-keys: |
# ${{ runner.os }}-gradle-
# - name: Build example for Android
# env:
# JAVA_OPTS: '-XX:MaxHeapSize=6g'
# run: |
# pnpm run build:demo:android
# build-ios:
# name: Build iOS demo app
# runs-on: macos-latest
# needs: [build-packages]
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# with:
# submodules: 'true'
# - name: Setup
# uses: ./.github/actions/setup
# - name: Build packages
# run: pnpm run build
# - name: Restore Cocoapods
# id: cocoapods-cache
# uses: actions/cache/restore@v4
# with:
# path: |
# **/ios/Pods
# key: ${{ runner.os }}-cocoapods-${{ hashFiles('examples/rn-app/ios/Podfile.lock') }}
# restore-keys: |
# ${{ runner.os }}-cocoapods-
# - name: Install Cocoapods
# run: |
# cd examples/rn-app/ios
# pod install
# env:
# NO_FLIPPER: 1
# - name: Cache Cocoapods
# uses: actions/cache/save@v4
# with:
# path: |
# **/ios/Pods
# key: ${{ steps.cocoapods-cache.outputs.cache-key }}
# - name: Build example for iOS
# run: |
# pnpm run build:demo:ios