-
Notifications
You must be signed in to change notification settings - Fork 14
137 lines (114 loc) Β· 3.66 KB
/
build-release.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
on:
push:
tags:
- "v*"
name: Build release
jobs:
build-apk:
runs-on: ubuntu-latest
steps:
- name: π Checkout Repository
uses: actions/checkout@v4
- name: π Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
- name: π Setup Node
uses: actions/setup-node@v4
with:
node-version: 20.x
cache: pnpm
- name: π Setup EAS
uses: expo/expo-github-action@v8
with:
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}
packager: pnpm
- name: π Setup Java 17
uses: actions/setup-java@v4
with:
distribution: "zulu"
java-version: "17"
- name: π¦ Install dependencies
run: pnpm install
- name: π Build app
run: eas build --local --non-interactive --platform android --profile production
env:
EXPO_PUBLIC_API_URL: ${{ secrets.API_URL }}
EXPO_PUBLIC_STRIPE_PUBLIC_KEY: ${{ secrets.STRIPE_PUBLIC_KEY }}
EXPO_PUBLIC_PLAUSIBLE_URL: ${{ secrets.PLAUSIBLE_URL }}
EXPO_PUBLIC_PLAUSIBLE_DOMAIN: ${{ secrets.PLAUSIBLE_DOMAIN }}
- name: Upload Artifact GitHub Action
uses: actions/upload-artifact@v4
with:
name: vshop_apk
path: build-*.apk
build-ipa:
runs-on: macos-14
steps:
- name: π Checkout Repository
uses: actions/checkout@v4
- name: π Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
- name: π Setup Node
uses: actions/setup-node@v4
with:
node-version: 20.x
cache: pnpm
- name: π Setup EAS
uses: expo/expo-github-action@v8
with:
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}
packager: pnpm
- name: π¦ Install dependencies
run: pnpm install
- name: π¦ Expo prebuild
run: pnpm prebuild:ios
- name: π Create .env
run: |
touch .env
echo EXPO_PUBLIC_API_URL=${{ secrets.API_URL }} >> .env
echo EXPO_PUBLIC_STRIPE_PUBLIC_KEY=${{ secrets.STRIPE_PUBLIC_KEY }} >> .env
echo EXPO_PUBLIC_PLAUSIBLE_URL=${{ secrets.PLAUSIBLE_URL }} >> .env
echo EXPO_PUBLIC_PLAUSIBLE_DOMAIN=${{ secrets.PLAUSIBLE_DOMAIN }} >> .env
- name: Build Archive
run: |
cd ios
xcodebuild archive -workspace VShop.xcworkspace -scheme VShop -sdk iphoneos -archivePath output.xcarchive -configuration Release CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO | xcpretty && exit ${PIPESTATUS[0]}
- name: Create IPA from Archive
run: |
cp -r ios/output.xcarchive/Products/Applications/ Payload/
zip -r vshop.ipa Payload/
- uses: actions/upload-artifact@v4
name: Upload IPA
with:
name: vshop_ipa
path: vshop.ipa
create-release:
needs: [build-apk, build-ipa]
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- name: π Checkout Repository
uses: actions/checkout@v4
- name: β¬ Download Artifact Outputs - iOS
uses: actions/download-artifact@v4
with:
name: vshop_ipa
path: vshop_ipa
- name: β¬ Download Artifact Outputs - Android
uses: actions/download-artifact@v4
with:
name: vshop_apk
path: vshop_apk
- name: π Create GitHub Release
uses: softprops/action-gh-release@v2
with:
draft: true
files: |
vshop_ipa/**
vshop_apk/**