Chore: Try Github Actions (#4376)
This commit is contained in:
parent
d7f7b1da9f
commit
0e378c67b8
|
@ -0,0 +1,76 @@
|
|||
name: Build Android
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: ["labeled"]
|
||||
|
||||
jobs:
|
||||
build-android:
|
||||
if: contains(github.event.pull_request.labels.*.name, 'android-build')
|
||||
|
||||
name: Build Android
|
||||
runs-on: ubuntu-latest
|
||||
environment: develop
|
||||
defaults:
|
||||
run:
|
||||
working-directory: android
|
||||
|
||||
env:
|
||||
JAVA_OPTS: "-Xms512m -Xmx2g"
|
||||
GRADLE_OPTS: '-Xmx3g -Dorg.gradle.daemon=false -Dorg.gradle.jvmargs="-Xmx2g -XX:+HeapDumpOnOutOfMemoryError"'
|
||||
TERM: dumb
|
||||
|
||||
steps:
|
||||
- name: Check out Git repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Decode Keystore
|
||||
run: echo ${{ secrets.KEYSTORE_BASE_64 }} | base64 -d > ./app/key.keystore
|
||||
|
||||
- uses: c-hive/gha-yarn-cache@v2
|
||||
|
||||
- name: Install dependencies
|
||||
run: yarn install --prefer-offline
|
||||
|
||||
- name: Set up JDK 11
|
||||
uses: actions/setup-java@v3
|
||||
with:
|
||||
distribution: "zulu"
|
||||
java-version: 11.0.14
|
||||
cache: "gradle"
|
||||
|
||||
- name: Make Gradlew Executable
|
||||
run: chmod +x ./gradlew
|
||||
|
||||
- name: Set gradle.properties
|
||||
run: |
|
||||
echo -e "" > ./gradle.properties
|
||||
echo -e android.useAndroidX=true >> ./gradle.properties
|
||||
echo -e android.enableJetifier=true >> ./gradle.properties
|
||||
echo -e FLIPPER_VERSION=0.51.0 >> ./gradle.properties
|
||||
echo -e VERSIONCODE=${{ github.run_number }} >> ./gradle.properties
|
||||
echo -e APPLICATION_ID=chat.rocket.reactnative >> ./gradle.properties
|
||||
echo -e BugsnagAPIKey=${{ secrets.BUGSNAG_KEY }} >> ./gradle.properties
|
||||
echo -e KEYSTORE=${{ secrets.KEYSTORE }} >> ./gradle.properties
|
||||
echo -e KEYSTORE_PASSWORD=${{ secrets.KEYSTORE_PASSWORD }} >> ./gradle.properties
|
||||
echo -e KEY_ALIAS=${{ secrets.KEY_ALIAS }} >> ./gradle.properties
|
||||
echo -e KEY_PASSWORD=${{ secrets.KEYSTORE_PASSWORD }} >> ./gradle.properties
|
||||
|
||||
- name: Generate App APK
|
||||
run: |
|
||||
./gradlew bundleExperimentalPlayRelease --no-daemon
|
||||
|
||||
- name: Upload sourcemaps to Bugsnag
|
||||
run: |
|
||||
npx bugsnag-source-maps upload-react-native \
|
||||
--api-key=${{ secrets.BUGSNAG_KEY }} \
|
||||
--app-version-code=${{ github.event.number }} \
|
||||
--platform android \
|
||||
--source-map=app/build/generated/sourcemaps/react/experimentalPlay/release/app.bundle.map \
|
||||
--bundle app/build/generated/assets/react/experimentalPlay/release/app.bundle
|
||||
|
||||
- name: Store Artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: app.bundle-${{ github.event.number }}
|
||||
path: app/build/generated/assets/react/experimentalPlay/release/app.bundle
|
|
@ -0,0 +1,71 @@
|
|||
name: Build iOS
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: ['labeled']
|
||||
|
||||
jobs:
|
||||
build-android:
|
||||
if: contains(github.event.pull_request.labels.*.name, 'ios-build')
|
||||
|
||||
name: Build iOS
|
||||
runs-on: macos-latest
|
||||
environment: develop
|
||||
defaults:
|
||||
run:
|
||||
working-directory: ios
|
||||
|
||||
steps:
|
||||
- name: Check out Git repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- uses: c-hive/gha-yarn-cache@v2
|
||||
|
||||
- name: Install dependencies
|
||||
run: yarn install --prefer-offline
|
||||
|
||||
- name: Setup Ruby (bundle)
|
||||
uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: 2.6
|
||||
bundler-cache: true
|
||||
- run: bundle install
|
||||
|
||||
- name: Restore Pods cache
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: |
|
||||
ios/Pods
|
||||
~/Library/Caches/CocoaPods
|
||||
~/.cocoapods
|
||||
key: ${{ runner.os }}-pods-${{ hashFiles('ios/Podfile.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-pods-
|
||||
|
||||
- name: Install Pods
|
||||
run: pod install --repo-update && cd ..
|
||||
|
||||
- name: Set version
|
||||
run: agvtool new-version -all ${{ github.run_number }}
|
||||
|
||||
- name: Set Keys
|
||||
run: |
|
||||
/usr/libexec/PlistBuddy -c "Set :bugsnag:apiKey ${{ secrets.BUGSNAG_KEY }}" ./RocketChatRN/Info.plist
|
||||
/usr/libexec/PlistBuddy -c "Set :bugsnag:apiKey ${{ secrets.BUGSNAG_KEY }}" ./ShareRocketChatRN/Info.plist
|
||||
/usr/libexec/PlistBuddy -c "Set IS_OFFICIAL NO" ./RocketChatRN/Info.plist
|
||||
/usr/libexec/PlistBuddy -c "Set IS_OFFICIAL NO" ./ShareRocketChatRN/Info.plist
|
||||
/usr/libexec/PlistBuddy -c "Set IS_OFFICIAL NO" ./NotificationService/Info.plist
|
||||
|
||||
- name: Decode P8
|
||||
run: echo ${{ secrets.APP_STORE_CONNECT_API_BASE64 }} | base64 --decode > ./fastlane/app_store_connect_api_key.p8
|
||||
|
||||
- name: Run fastlane
|
||||
run: fastlane ios build_experimental
|
||||
|
||||
- name: Store Artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: Rocket.Chat.${{ github.event.number }}.ipa
|
||||
path: |
|
||||
Rocket.Chat.ipa
|
||||
Rocket.Chat.app.dSYM.zip
|
|
@ -0,0 +1,26 @@
|
|||
name: Test and Lint
|
||||
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
test-and-lint:
|
||||
name: Test and lint
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Check out Git repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- uses: c-hive/gha-yarn-cache@v2
|
||||
|
||||
- name: Install dependencies
|
||||
run: yarn install --prefer-offline
|
||||
|
||||
- name: Lint
|
||||
run: yarn lint
|
||||
|
||||
- name: Test
|
||||
run: yarn test -w 8
|
||||
|
||||
- name: Codecov
|
||||
run: yarn codecov
|
Loading…
Reference in New Issue