Skip to content

Commit 1b3c24b

Browse files
committed
Add support for github actions
1 parent 9249556 commit 1b3c24b

File tree

5 files changed

+258
-2
lines changed

5 files changed

+258
-2
lines changed

.github/workflows/build-and-test.yml

+86
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
name: Build and test
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- 'develop'
7+
8+
jobs:
9+
build-and-test:
10+
name: Build and run tests
11+
runs-on: macos-10.15
12+
env:
13+
FL_OUTPUT_DIR: output
14+
API_KEY: ${{ secrets.API_KEY }}
15+
APP_IDENTIFIER_PROD: ${{ secrets.APP_IDENTIFIER_PROD }}
16+
APP_IDENTIFIER_QA: ${{ secrets.APP_IDENTIFIER_QA }}
17+
APPCENTER_API_TOKEN: ${{ secrets.APPCENTER_API_TOKEN }}
18+
APPCENTER_APP_NAME: ${{ secrets.APPCENTER_APP_NAME }}
19+
APPCENTER_OWNER_NAME: ${{ secrets.APPCENTER_OWNER_NAME }}
20+
APPLE_MERCHANT_IDENTIFIER: ${{ secrets.APPLE_MERCHANT_IDENTIFIER }}
21+
BRANCH_KEY_PRODUCTION: ${{ secrets.BRANCH_KEY_PRODUCTION }}
22+
BRANCH_KEY_QA: ${{ secrets.BRANCH_KEY_QA }}
23+
BUG_FENDER_KEY: ${{ secrets.BUG_FENDER_KEY }}
24+
CRASHLYTICS_API_TOKEN: ${{ secrets.CRASHLYTICS_API_TOKEN }}
25+
CRASHLYTICS_BUILD_SECRET: ${{ secrets.CRASHLYTICS_BUILD_SECRET }}
26+
DELIVER_USERNAME: ${{ secrets.DELIVER_USERNAME }}
27+
DEV_SERVER_URL: ${{ secrets.DEV_SERVER_URL }}
28+
FACEBOOK_APP_ID: ${{ secrets.FACEBOOK_APP_ID }}
29+
FACEBOOK_BUNDLE_URL_SCHEME: ${{ secrets.FACEBOOK_BUNDLE_URL_SCHEME }}
30+
FACEBOOK_DISPLAY_NAME: ${{ secrets.FACEBOOK_DISPLAY_NAME }}
31+
FACEBOOK_URL_SCHEME_SUFFIX: ${{ secrets.FACEBOOK_URL_SCHEME_SUFFIX }}
32+
FASTLANE_PASSWORD: ${{ secrets.FASTLANE_PASSWORD }}
33+
FASTLANE_TEAM_ID: ${{ secrets.FASTLANE_TEAM_ID }}
34+
FASTLANE_USER: ${{ secrets.FASTLANE_USER }}
35+
FEATURE_SERVER_URL: ${{ secrets.FEATURE_SERVER_URL }}
36+
GOOGLE_MAP_DIRECTIONS_KEY: ${{ secrets.GOOGLE_MAP_DIRECTIONS_KEY }}
37+
GOOGLE_MAP_KEY: ${{ secrets.GOOGLE_MAP_KEY }}
38+
GOOGLE_SERVICE_INFO_PLIST_PRODUCTION: ${{ secrets.GOOGLE_SERVICE_INFO_PLIST_PRODUCTION }}
39+
HOCKEYAPP_API_TOKEN: ${{ secrets.HOCKEYAPP_API_TOKEN }}
40+
HOCKEYAPP_ID_QA: ${{ secrets.HOCKEYAPP_ID_QA }}
41+
MATCH_GIT_FULL_NAME: ${{ secrets.MATCH_GIT_FULL_NAME }}
42+
MATCH_GIT_URL: ${{ secrets.MATCH_GIT_URL }}
43+
MATCH_GIT_USER_EMAIL: ${{ secrets.MATCH_GIT_USER_EMAIL }}
44+
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
45+
MATCH_USERNAME: ${{ secrets.MATCH_USERNAME }}
46+
MD5_PASSWORD_SALT: ${{ secrets.MD5_PASSWORD_SALT }}
47+
PRODUCTION_SERVER_URL: ${{ secrets.PRODUCTION_SERVER_URL }}
48+
QA_SERVER_URL: ${{ secrets.QA_SERVER_URL }}
49+
SLACK_URL: ${{ secrets.SLACK_URL }}
50+
SLACK_URL_XOCHAT: ${{ secrets.SLACK_URL_XOCHAT }}
51+
STAGE_SERVER_URL: ${{ secrets.STAGE_SERVER_URL }}
52+
STRIPE_KEY_PRODUCTION: ${{ secrets.STRIPE_KEY_PRODUCTION }}
53+
STRIPE_KEY_QA: ${{ secrets.STRIPE_KEY_QA }}
54+
TEAM_ID_PRODUCTION: ${{ secrets.TEAM_ID_PRODUCTION }}
55+
steps:
56+
- uses: actions/checkout@v2
57+
- name: Map infoplist
58+
run: scripts/infoplist.sh
59+
- name: Cache gems
60+
uses: actions/cache@v2
61+
with:
62+
path: circle_vendor/bundle
63+
key: 1-gems-{{ checksum "Gemfile.lock" }}
64+
- name: Install gems
65+
run: bundle install --path circle_vendor/bundle
66+
- name: Cache pods
67+
uses: actions/cache@v2
68+
with:
69+
path: ./Pods
70+
key: 1-pods-{{ checksum "Podfile.lock" }}
71+
- name: Install Cocoapods
72+
run: |
73+
if [ ! -d "Pods" ]
74+
then
75+
bundle exec pod install --repo-update
76+
fi
77+
- name: Map GoogleService-Info.plist
78+
run: |
79+
[ ! -z "$GOOGLE_SERVICE_INFO_PLIST_PRODUCTION" ]
80+
echo $GOOGLE_SERVICE_INFO_PLIST_PRODUCTION | base64 --decode -o Resources/Plists/GoogleService-Info.plist
81+
- name: Run tests
82+
run: bundle exec fastlane unit_tests
83+
- uses: actions/upload-artifact@v2
84+
with:
85+
path: output
86+
+85
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
name: Build Development
2+
3+
on:
4+
push:
5+
branches:
6+
- 'develop'
7+
8+
jobs:
9+
build-and-test:
10+
name: Build and run tests
11+
runs-on: macos-10.15
12+
env:
13+
FL_OUTPUT_DIR: output
14+
API_KEY: ${{ secrets.API_KEY }}
15+
APP_IDENTIFIER_PROD: ${{ secrets.APP_IDENTIFIER_PROD }}
16+
APP_IDENTIFIER_QA: ${{ secrets.APP_IDENTIFIER_QA }}
17+
APPCENTER_API_TOKEN: ${{ secrets.APPCENTER_API_TOKEN }}
18+
APPCENTER_APP_NAME: ${{ secrets.APPCENTER_APP_NAME }}
19+
APPCENTER_OWNER_NAME: ${{ secrets.APPCENTER_OWNER_NAME }}
20+
APPLE_MERCHANT_IDENTIFIER: ${{ secrets.APPLE_MERCHANT_IDENTIFIER }}
21+
BRANCH_KEY_PRODUCTION: ${{ secrets.BRANCH_KEY_PRODUCTION }}
22+
BRANCH_KEY_QA: ${{ secrets.BRANCH_KEY_QA }}
23+
BUG_FENDER_KEY: ${{ secrets.BUG_FENDER_KEY }}
24+
CRASHLYTICS_API_TOKEN: ${{ secrets.CRASHLYTICS_API_TOKEN }}
25+
CRASHLYTICS_BUILD_SECRET: ${{ secrets.CRASHLYTICS_BUILD_SECRET }}
26+
DELIVER_USERNAME: ${{ secrets.DELIVER_USERNAME }}
27+
DEV_SERVER_URL: ${{ secrets.DEV_SERVER_URL }}
28+
FACEBOOK_APP_ID: ${{ secrets.FACEBOOK_APP_ID }}
29+
FACEBOOK_BUNDLE_URL_SCHEME: ${{ secrets.FACEBOOK_BUNDLE_URL_SCHEME }}
30+
FACEBOOK_DISPLAY_NAME: ${{ secrets.FACEBOOK_DISPLAY_NAME }}
31+
FACEBOOK_URL_SCHEME_SUFFIX: ${{ secrets.FACEBOOK_URL_SCHEME_SUFFIX }}
32+
FASTLANE_PASSWORD: ${{ secrets.FASTLANE_PASSWORD }}
33+
FASTLANE_TEAM_ID: ${{ secrets.FASTLANE_TEAM_ID }}
34+
FASTLANE_USER: ${{ secrets.FASTLANE_USER }}
35+
FEATURE_SERVER_URL: ${{ secrets.FEATURE_SERVER_URL }}
36+
GOOGLE_MAP_DIRECTIONS_KEY: ${{ secrets.GOOGLE_MAP_DIRECTIONS_KEY }}
37+
GOOGLE_MAP_KEY: ${{ secrets.GOOGLE_MAP_KEY }}
38+
GOOGLE_SERVICE_INFO_PLIST_PRODUCTION: ${{ secrets.GOOGLE_SERVICE_INFO_PLIST_PRODUCTION }}
39+
HOCKEYAPP_API_TOKEN: ${{ secrets.HOCKEYAPP_API_TOKEN }}
40+
HOCKEYAPP_ID_QA: ${{ secrets.HOCKEYAPP_ID_QA }}
41+
MATCH_GIT_FULL_NAME: ${{ secrets.MATCH_GIT_FULL_NAME }}
42+
MATCH_GIT_URL: ${{ secrets.MATCH_GIT_URL }}
43+
MATCH_GIT_USER_EMAIL: ${{ secrets.MATCH_GIT_USER_EMAIL }}
44+
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
45+
MATCH_USERNAME: ${{ secrets.MATCH_USERNAME }}
46+
MD5_PASSWORD_SALT: ${{ secrets.MD5_PASSWORD_SALT }}
47+
PRODUCTION_SERVER_URL: ${{ secrets.PRODUCTION_SERVER_URL }}
48+
QA_SERVER_URL: ${{ secrets.QA_SERVER_URL }}
49+
SLACK_URL: ${{ secrets.SLACK_URL }}
50+
SLACK_URL_XOCHAT: ${{ secrets.SLACK_URL_XOCHAT }}
51+
STAGE_SERVER_URL: ${{ secrets.STAGE_SERVER_URL }}
52+
STRIPE_KEY_PRODUCTION: ${{ secrets.STRIPE_KEY_PRODUCTION }}
53+
STRIPE_KEY_QA: ${{ secrets.STRIPE_KEY_QA }}
54+
TEAM_ID_PRODUCTION: ${{ secrets.TEAM_ID_PRODUCTION }}
55+
steps:
56+
- uses: actions/checkout@v2
57+
- name: Map infoplist
58+
run: scripts/infoplist.sh
59+
- name: Cache gems
60+
uses: actions/cache@v2
61+
with:
62+
path: circle_vendor/bundle
63+
key: 1-gems-{{ checksum "Gemfile.lock" }}
64+
- name: Install gems
65+
run: bundle install --path circle_vendor/bundle
66+
- name: Cache pods
67+
uses: actions/cache@v2
68+
with:
69+
path: ./Pods
70+
key: 1-pods-{{ checksum "Podfile.lock" }}
71+
- name: Install Cocoapods
72+
run: |
73+
if [ ! -d "Pods" ]
74+
then
75+
bundle exec pod install --repo-update
76+
fi
77+
- name: Map GoogleService-Info.plist
78+
run: |
79+
[ ! -z "$GOOGLE_SERVICE_INFO_PLIST_PRODUCTION" ]
80+
echo $GOOGLE_SERVICE_INFO_PLIST_PRODUCTION | base64 --decode -o Resources/Plists/GoogleService-Info.plist
81+
- name: Build QA
82+
run: bundle exec fastlane qa
83+
- uses: actions/upload-artifact@v2
84+
with:
85+
path: output
+85
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
name: Build Production
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- 'release/*'
7+
8+
jobs:
9+
build-and-test:
10+
name: Build and run tests
11+
runs-on: macos-10.15
12+
env:
13+
FL_OUTPUT_DIR: output
14+
API_KEY: ${{ secrets.API_KEY }}
15+
APP_IDENTIFIER_PROD: ${{ secrets.APP_IDENTIFIER_PROD }}
16+
APP_IDENTIFIER_QA: ${{ secrets.APP_IDENTIFIER_QA }}
17+
APPCENTER_API_TOKEN: ${{ secrets.APPCENTER_API_TOKEN }}
18+
APPCENTER_APP_NAME: ${{ secrets.APPCENTER_APP_NAME }}
19+
APPCENTER_OWNER_NAME: ${{ secrets.APPCENTER_OWNER_NAME }}
20+
APPLE_MERCHANT_IDENTIFIER: ${{ secrets.APPLE_MERCHANT_IDENTIFIER }}
21+
BRANCH_KEY_PRODUCTION: ${{ secrets.BRANCH_KEY_PRODUCTION }}
22+
BRANCH_KEY_QA: ${{ secrets.BRANCH_KEY_QA }}
23+
BUG_FENDER_KEY: ${{ secrets.BUG_FENDER_KEY }}
24+
CRASHLYTICS_API_TOKEN: ${{ secrets.CRASHLYTICS_API_TOKEN }}
25+
CRASHLYTICS_BUILD_SECRET: ${{ secrets.CRASHLYTICS_BUILD_SECRET }}
26+
DELIVER_USERNAME: ${{ secrets.DELIVER_USERNAME }}
27+
DEV_SERVER_URL: ${{ secrets.DEV_SERVER_URL }}
28+
FACEBOOK_APP_ID: ${{ secrets.FACEBOOK_APP_ID }}
29+
FACEBOOK_BUNDLE_URL_SCHEME: ${{ secrets.FACEBOOK_BUNDLE_URL_SCHEME }}
30+
FACEBOOK_DISPLAY_NAME: ${{ secrets.FACEBOOK_DISPLAY_NAME }}
31+
FACEBOOK_URL_SCHEME_SUFFIX: ${{ secrets.FACEBOOK_URL_SCHEME_SUFFIX }}
32+
FASTLANE_PASSWORD: ${{ secrets.FASTLANE_PASSWORD }}
33+
FASTLANE_TEAM_ID: ${{ secrets.FASTLANE_TEAM_ID }}
34+
FASTLANE_USER: ${{ secrets.FASTLANE_USER }}
35+
FEATURE_SERVER_URL: ${{ secrets.FEATURE_SERVER_URL }}
36+
GOOGLE_MAP_DIRECTIONS_KEY: ${{ secrets.GOOGLE_MAP_DIRECTIONS_KEY }}
37+
GOOGLE_MAP_KEY: ${{ secrets.GOOGLE_MAP_KEY }}
38+
GOOGLE_SERVICE_INFO_PLIST_PRODUCTION: ${{ secrets.GOOGLE_SERVICE_INFO_PLIST_PRODUCTION }}
39+
HOCKEYAPP_API_TOKEN: ${{ secrets.HOCKEYAPP_API_TOKEN }}
40+
HOCKEYAPP_ID_QA: ${{ secrets.HOCKEYAPP_ID_QA }}
41+
MATCH_GIT_FULL_NAME: ${{ secrets.MATCH_GIT_FULL_NAME }}
42+
MATCH_GIT_URL: ${{ secrets.MATCH_GIT_URL }}
43+
MATCH_GIT_USER_EMAIL: ${{ secrets.MATCH_GIT_USER_EMAIL }}
44+
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
45+
MATCH_USERNAME: ${{ secrets.MATCH_USERNAME }}
46+
MD5_PASSWORD_SALT: ${{ secrets.MD5_PASSWORD_SALT }}
47+
PRODUCTION_SERVER_URL: ${{ secrets.PRODUCTION_SERVER_URL }}
48+
QA_SERVER_URL: ${{ secrets.QA_SERVER_URL }}
49+
SLACK_URL: ${{ secrets.SLACK_URL }}
50+
SLACK_URL_XOCHAT: ${{ secrets.SLACK_URL_XOCHAT }}
51+
STAGE_SERVER_URL: ${{ secrets.STAGE_SERVER_URL }}
52+
STRIPE_KEY_PRODUCTION: ${{ secrets.STRIPE_KEY_PRODUCTION }}
53+
STRIPE_KEY_QA: ${{ secrets.STRIPE_KEY_QA }}
54+
TEAM_ID_PRODUCTION: ${{ secrets.TEAM_ID_PRODUCTION }}
55+
steps:
56+
- uses: actions/checkout@v2
57+
- name: Map infoplist
58+
run: scripts/infoplist.sh
59+
- name: Cache gems
60+
uses: actions/cache@v2
61+
with:
62+
path: circle_vendor/bundle
63+
key: 1-gems-{{ checksum "Gemfile.lock" }}
64+
- name: Install gems
65+
run: bundle install --path circle_vendor/bundle
66+
- name: Cache pods
67+
uses: actions/cache@v2
68+
with:
69+
path: ./Pods
70+
key: 1-pods-{{ checksum "Podfile.lock" }}
71+
- name: Install Cocoapods
72+
run: |
73+
if [ ! -d "Pods" ]
74+
then
75+
bundle exec pod install --repo-update
76+
fi
77+
- name: Map GoogleService-Info.plist
78+
run: |
79+
[ ! -z "$GOOGLE_SERVICE_INFO_PLIST_PRODUCTION" ]
80+
echo $GOOGLE_SERVICE_INFO_PLIST_PRODUCTION | base64 --decode -o Resources/Plists/GoogleService-Info.plist
81+
- name: Build Production
82+
run: bundle exec fastlane prod
83+
- uses: actions/upload-artifact@v2
84+
with:
85+
path: output

scripts/appconfig.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
if [ -f $SRCROOT/fastlane/.env.default ]
33
then
44
source $SRCROOT/fastlane/.env.default
5-
elif test -z "$CIRCLECI"
5+
elif test -z "$CI"
66
then
77
echo "Please provide missing ${SRCROOT}/fastlane/.env.default file"
88
exit 1

scripts/infoplist.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
if [ -f fastlane/.env.default ]
22
then
33
source fastlane/.env.default
4-
elif test -z "$CIRCLECI"
4+
elif test -z "$CI"
55
then
66
echo "Please provide missing fastlane/.env.default file"
77
exit 1

0 commit comments

Comments
 (0)