-
-
Notifications
You must be signed in to change notification settings - Fork 250
109 lines (100 loc) · 3.91 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
name: Pull Request
on:
pull_request:
jobs:
# check which folder changed in the repo
check-changes:
uses: ./.github/workflows/_check.yml
with:
targets: '[
"locksmith",
"packages/contracts",
"packages/hardhat-plugin",
"packages/unlock-js",
"packages/paywall",
"smart-contracts",
"subgraph",
"governance",
"unlock-protocol-com",
"wedlocks",
"unlock-app",
"packages/core",
"docs"
]'
# run all tests if PR contains the 'run-all-tests' tag
bypass: ${{ contains(github.event.pull_request.labels.*.name, 'run-all-tests')}}
# run tests for folders that have changed
run-tests:
needs: check-changes
# name: "Run the tests"
if: ${{ needs.check-changes.outputs.changed != '[]' }}
uses: ./.github/workflows/_tests.yml
with:
changed: ${{ needs.check-changes.outputs.changed }}
smart-contracts-coverage:
needs: check-changes
if: ${{ needs.check-changes.outputs.changed != '[]' && contains(fromJson(needs.check-changes.outputs.changed), 'smart-contracts') }}
uses: ./.github/workflows/_coverage.yml
with:
service: smart-contracts
# the check for changes in network files is included within the workflow itself
networks-changed:
uses: ./.github/workflows/_networks.yml
# Netlify Deployments (run as drafts, unpublished to main URL)
deploy-unlock-protocol-com:
if: ${{ github.event.pull_request.head.repo.full_name == github.repository }} # make sure we dont deploy from forks
needs: run-tests
uses: ./.github/workflows/_netlify.yml
with:
service: unlock-protocol-com
target-env: staging
secrets:
SITE_ID: ${{ secrets.UNLOCK_PROTOCOL_COM_NETLIFY_STAGING_SITE_ID }}
AUTH_TOKEN: ${{ secrets.UNLOCK_PROTOCOL_COM_NETLIFY_STAGING_AUTH_TOKEN }}
deploy-paywall-app:
if: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
needs: run-tests
uses: ./.github/workflows/_netlify.yml
with:
service: paywall-app
target-env: staging
secrets:
SITE_ID: ${{ secrets.PAYWALL_APP_NETLIFY_STAGING_SITE_ID }}
AUTH_TOKEN: ${{ secrets.PAYWALL_APP_NETLIFY_STAGING_AUTH_TOKEN }}
deploy-unlock-app-vercel:
needs:
- check-changes
- run-tests
if: ${{ github.event.pull_request.head.repo.full_name == github.repository && needs.check-changes.outputs.changed != '[]' && contains(fromJson(needs.check-changes.outputs.changed), 'unlock-app') }}
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Load secrets from 1Password
uses: 1Password/[email protected]
with:
export-env: true
env:
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
UNLOCK_APP_VERCEL_STAGING_VERCEL_PROJECT_ID: op://secrets/vercel/project-id-unlock-app-staging
UNLOCK_APP_VERCEL_STAGING_VERCEL_ORG_ID: op://secrets/vercel/org-id
UNLOCK_APP_VERCEL_STAGING_VERCEL_TOKEN: op://secrets/vercel/deployment-token
UNLOCK_APP_VERCEL_STAGING_NEXT_PUBLIC_BASE64_WEDLOCKS_PUBLIC_KEY: op://secrets/wedlocks/public-key
UNLOCK_APP_VERCEL_STAGING_GOOGLE_CLIENT_SECRET: op://secrets/google/staging-secret
UNLOCK_APP_VERCEL_STAGING_NEXTAUTH_SECRET: op://secrets/nextauth/staging-secret
- uses: ./.github/actions/vercel
with:
service: unlock-app
target-env: staging
env:
UNLOCK_APP_VERCEL_STAGING_NEXTAUTH_URL: 'https://staging-app.unlock-protocol.com'
deploy-docs:
if: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
uses: ./.github/workflows/_netlify.yml
with:
service: docs
target-env: staging
secrets:
SITE_ID: d6588eac-a04f-43dc-8341-f85d830bff49
AUTH_TOKEN: ${{ secrets.UNLOCK_PROTOCOL_COM_NETLIFY_STAGING_AUTH_TOKEN }}