-
Notifications
You must be signed in to change notification settings - Fork 8
161 lines (157 loc) · 7.39 KB
/
pull_request.yml
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
name: PR Checks
on: [pull_request]
jobs:
install_modules:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
run_install: false
- uses: actions/setup-node@v4
with:
node-version: "20.x"
cache: "pnpm"
- name: Clear pnpm store and modules
run: |
rm -rf node_modules || true
rm -rf ~/.pnpm-store || true
pnpm store path && pnpm store prune || true
- name: Install dependencies
run: pnpm install --frozen-lockfile
lint:
needs: install_modules
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/base-setup
name: Base Setup
- name: Run linting
run: pnpm run lint
format:
needs: install_modules
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/base-setup
name: Base Setup
- name: Run formatting
run: pnpm run format:check
build:
needs: install_modules
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/base-setup
name: Base Setup
- name: Create and populate .env.production
env:
NEXT_PUBLIC_WC_PROJECT_ID: DUMMY_DO_NOT_REPLACE
NEXT_PUBLIC_FAUCET_API_URL: DUMMY_DO_NOT_REPLACE
NEXT_PUBLIC_GELATO_BRIDGE_URL: DUMMY_DO_NOT_REPLACE
NEXT_PUBLIC_SENTRY_DSN: DUMMY_DO_NOT_REPLACE
NEXT_PUBLIC_GTM_ID: DUMMY_DO_NOT_REPLACE
NEXT_PUBLIC_SEGMENT_WRITE_KEY: DUMMY_DO_NOT_REPLACE
BRAZE_INSTANCE_URL: DUMMY_DO_NOT_REPLACE
BRAZE_API_KEY: DUMMY_DO_NOT_REPLACE
BRAZE_GENERAL_WAITLIST_GROUP_ID: DUMMY_DO_NOT_REPLACE
BRAZE_DEVELOPERS_WAITLIST_GROUP_ID: DUMMY_DO_NOT_REPLACE
MULTIPLIER_JWT_SECRET: DUMMY_DO_NOT_REPLACE
ORIGIN: DUMMY_DO_NOT_REPLACE
INK_APP_SUBMISSION_BOT_GITHUB_APP_ID: DUMMY_DO_NOT_REPLACE
INK_APP_SUBMISSION_BOT_GITHUB_PRIVATE_KEY: DUMMY_DO_NOT_REPLACE
INK_APP_SUBMISSION_BOT_GITHUB_INSTALLATION_ID: DUMMY_DO_NOT_REPLACE
INK_APP_SUBMISSION_SLACK_BOT_TOKEN: DUMMY_DO_NOT_REPLACE
INK_APP_SUBMISSION_TARGET_ORG: DUMMY_DO_NOT_REPLACE
INK_APP_SUBMISSION_TARGET_REPO: DUMMY_DO_NOT_REPLACE
INK_APP_SUBMISSION_TARGET_BRANCH: DUMMY_DO_NOT_REPLACE
INK_APP_SUBMISSION_SLACK_NOTIFICATION_CHANNEL: DUMMY_DO_NOT_REPLACE
HCAPTCHA_SECRET: DUMMY_DO_NOT_REPLACE
run: |
touch .env.production
echo "NEXT_PUBLIC_WC_PROJECT_ID=$NEXT_PUBLIC_WC_PROJECT_ID" >> .env.production
echo "NEXT_PUBLIC_FAUCET_API_URL=$NEXT_PUBLIC_FAUCET_API_URL" >> .env.production
echo "NEXT_PUBLIC_GELATO_BRIDGE_URL=$NEXT_PUBLIC_GELATO_BRIDGE_URL" >> .env.production
echo "NEXT_PUBLIC_SENTRY_DSN=$NEXT_PUBLIC_SENTRY_DSN" >> .env.production
echo "NEXT_PUBLIC_GTM_ID=$NEXT_PUBLIC_GTM_ID" >> .env.production
echo "NEXT_PUBLIC_SEGMENT_WRITE_KEY=$NEXT_PUBLIC_SEGMENT_WRITE_KEY" >> .env.production
echo "BRAZE_INSTANCE_URL=$BRAZE_INSTANCE_URL" >> .env.production
echo "BRAZE_API_KEY=$BRAZE_API_KEY" >> .env.production
echo "BRAZE_GENERAL_WAITLIST_GROUP_ID=$BRAZE_GENERAL_WAITLIST_GROUP_ID" >> .env.production
echo "BRAZE_DEVELOPERS_WAITLIST_GROUP_ID=$BRAZE_DEVELOPERS_WAITLIST_GROUP_ID" >> .env.production
echo "MULTIPLIER_JWT_SECRET=$MULTIPLIER_JWT_SECRET" >> .env.production
echo "ORIGIN=$ORIGIN" >> .env.production
echo "INK_APP_SUBMISSION_BOT_GITHUB_APP_ID=$INK_APP_SUBMISSION_BOT_GITHUB_APP_ID" >> .env.production
echo "INK_APP_SUBMISSION_BOT_GITHUB_PRIVATE_KEY=$INK_APP_SUBMISSION_BOT_GITHUB_PRIVATE_KEY" >> .env.production
echo "INK_APP_SUBMISSION_BOT_GITHUB_INSTALLATION_ID=$INK_APP_SUBMISSION_BOT_GITHUB_INSTALLATION_ID" >> .env.production
echo "INK_APP_SUBMISSION_SLACK_BOT_TOKEN=$INK_APP_SUBMISSION_SLACK_BOT_TOKEN" >> .env.production
echo "INK_APP_SUBMISSION_TARGET_ORG=$INK_APP_SUBMISSION_TARGET_ORG" >> .env.production
echo "INK_APP_SUBMISSION_TARGET_REPO=$INK_APP_SUBMISSION_TARGET_REPO" >> .env.production
echo "INK_APP_SUBMISSION_TARGET_BRANCH=$INK_APP_SUBMISSION_TARGET_BRANCH" >> .env.production
echo "INK_APP_SUBMISSION_SLACK_NOTIFICATION_CHANNEL=$INK_APP_SUBMISSION_SLACK_NOTIFICATION_CHANNEL" >> .env.production
echo "HCAPTCHA_SECRET=$HCAPTCHA_SECRET" >> .env.production
- name: Building app
run: pnpm run build
- name: Cache build
uses: actions/cache/save@v4
with:
path: .next
key: ${{ runner.os }}-build-store-${{ hashFiles('./src') }}
# e2e-test:
# needs: build
# timeout-minutes: 60
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: ./.github/actions/base-setup
# name: Base Setup
# - name: Restore build from cache
# uses: actions/cache/restore@v4
# with:
# path: .next
# key: ${{ runner.os }}-build-store-${{ hashFiles('./src') }}
# - name: Get installed Playwright version
# id: playwright-version
# run: echo "PLAYWRIGHT_VERSION=$(node -e "console.log(require('./package.json').dependencies['@playwright/test'].version)")" >> $GITHUB_ENV
# - name: Restore playwright binaries from cache
# uses: actions/cache@v4
# id: playwright-cache
# with:
# path: |
# ~/.cache/ms-playwright
# key: ${{ runner.os }}-playwright-${{ steps.playwright-version.outputs.PLAYWRIGHT_VERSION }}
# - name: Install Playwright Browsers
# run: npx playwright install --with-deps
# if: steps.playwright-cache.outputs.cache-hit != 'true'
# - name: Install Playwright Dependencies
# run: npx playwright install-deps
# if: steps.playwright-cache.outputs.cache-hit == 'true'
# - name: Run Playwright tests
# run: pnpm run test
# env:
# NEXT_PUBLIC_ENVIRONMENT: ci
# NEXT_PUBLIC_FAUCET_API_URL: DUMMY_DO_NOT_REPLACE
# NEXT_PUBLIC_GELATO_BRIDGE_URL: DUMMY_DO_NOT_REPLACE
# NEXT_PUBLIC_GTM_ID: DUMMY_DO_NOT_REPLACE
# NEXT_PUBLIC_SENTRY_DSN: DUMMY_DO_NOT_REPLACE
# NEXT_PUBLIC_SEGMENT_WRITE_KEY: DUMMY_DO_NOT_REPLACE
# BRAZE_INSTANCE_URL: DUMMY_DO_NOT_REPLACE
# BRAZE_API_KEY: DUMMY_DO_NOT_REPLACE
# BRAZE_GENERAL_WAITLIST_GROUP_ID: DUMMY_DO_NOT_REPLACE
# BRAZE_DEVELOPERS_WAITLIST_GROUP_ID: DUMMY_DO_NOT_REPLACE
# MULTIPLIER_JWT_SECRET: DUMMY_DO_NOT_REPLACE
# ORIGIN: DUMMY_DO_NOT_REPLACE
# INK_APP_SUBMISSION_BOT_GITHUB_APP_ID: DUMMY_DO_NOT_REPLACE
# INK_APP_SUBMISSION_BOT_GITHUB_PRIVATE_KEY: DUMMY_DO_NOT_REPLACE
# INK_APP_SUBMISSION_BOT_GITHUB_INSTALLATION_ID: DUMMY_DO_NOT_REPLACE
# INK_APP_SUBMISSION_SLACK_BOT_TOKEN: DUMMY_DO_NOT_REPLACE
# INK_APP_SUBMISSION_TARGET_ORG: DUMMY_DO_NOT_REPLACE
# INK_APP_SUBMISSION_TARGET_REPO: DUMMY_DO_NOT_REPLACE
# INK_APP_SUBMISSION_TARGET_BRANCH: DUMMY_DO_NOT_REPLACE
# INK_APP_SUBMISSION_SLACK_NOTIFICATION_CHANNEL: DUMMY_DO_NOT_REPLACE
# - uses: actions/upload-artifact@v4
# if: always()
# with:
# name: playwright-report
# path: playwright-report/
# retention-days: 30