Skip to content

Commit 70c0fa7

Browse files
committed
Merge branch 'feature/25-00-NC-feat-church-invites' of https://github.com/JesusFilm/core into feature/25-00-NC-feat-church-invites
2 parents 74dc81e + 608d1ad commit 70c0fa7

File tree

95 files changed

+2413
-486
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+2413
-486
lines changed

.github/workflows/api-deploy-prod.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,50 @@ on:
33
push:
44
branches:
55
- main
6+
permissions:
7+
contents: read
8+
checks: write
69
jobs:
10+
affected:
11+
runs-on: blacksmith-2vcpu-ubuntu-2204
12+
strategy:
13+
matrix:
14+
node-version: [22]
15+
env:
16+
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
17+
outputs:
18+
matrix: ${{ steps.set-matrix.outputs.matrix }}
19+
steps:
20+
- uses: actions/checkout@v4
21+
with:
22+
fetch-depth: 0
23+
- uses: useblacksmith/setup-node@v5
24+
with:
25+
node-version: ${{ matrix.node-version }}
26+
- name: Get Node Version
27+
id: node-version
28+
run: echo "version=$(node -v)" >> $GITHUB_OUTPUT
29+
- name: Mount NPM Cache
30+
uses: useblacksmith/stickydisk@v1
31+
with:
32+
key: ${{ github.repository }}-${{ steps.node-version.outputs.version }}-npm-cache
33+
path: ~/.npm
34+
- name: Mount node_modules
35+
uses: useblacksmith/stickydisk@v1
36+
with:
37+
key: ${{ github.repository }}-${{ steps.node-version.outputs.version }}-node-modules
38+
path: ./node_modules
39+
- name: NPM Install
40+
run: npm install --silent
41+
- uses: nrwl/nx-set-shas@v4
42+
- id: set-matrix
43+
name: set matrix app to affected array
44+
run: |
45+
echo "matrix=$(npx ts-node tools/scripts/affected-apps.ts --projects apis/*)" >> $GITHUB_OUTPUT
46+
cat $GITHUB_OUTPUT
747
api-analytics:
48+
needs: affected
49+
if: contains(needs.affected.outputs.matrix, 'api-analytics')
850
uses: JesusFilm/core/.github/workflows/api-deploy-worker.yml@main
951
with:
1052
name: api-analytics
@@ -17,7 +59,10 @@ jobs:
1759
JFP_AWS_ACCESS_KEY_ID: ${{ secrets.JFP_AWS_ACCESS_KEY_ID }}
1860
JFP_AWS_SECRET_ACCESS_KEY: ${{ secrets.JFP_AWS_SECRET_ACCESS_KEY }}
1961
AWS_NETWORK_CONFIG: ${{ secrets.AWS_NETWORK_CONFIG }}
62+
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
2063
api-journeys:
64+
needs: affected
65+
if: contains(needs.affected.outputs.matrix, 'api-journeys')
2166
uses: JesusFilm/core/.github/workflows/api-deploy-worker.yml@main
2267
with:
2368
name: api-journeys
@@ -30,7 +75,10 @@ jobs:
3075
JFP_AWS_ACCESS_KEY_ID: ${{ secrets.JFP_AWS_ACCESS_KEY_ID }}
3176
JFP_AWS_SECRET_ACCESS_KEY: ${{ secrets.JFP_AWS_SECRET_ACCESS_KEY }}
3277
AWS_NETWORK_CONFIG: ${{ secrets.AWS_NETWORK_CONFIG }}
78+
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
3379
api-journeys-modern:
80+
needs: affected
81+
if: contains(needs.affected.outputs.matrix, 'api-journeys-modern')
3482
uses: JesusFilm/core/.github/workflows/api-deploy-worker.yml@main
3583
with:
3684
name: api-journeys-modern
@@ -43,7 +91,10 @@ jobs:
4391
JFP_AWS_ACCESS_KEY_ID: ${{ secrets.JFP_AWS_ACCESS_KEY_ID }}
4492
JFP_AWS_SECRET_ACCESS_KEY: ${{ secrets.JFP_AWS_SECRET_ACCESS_KEY }}
4593
AWS_NETWORK_CONFIG: ${{ secrets.AWS_NETWORK_CONFIG }}
94+
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
4695
api-users:
96+
needs: affected
97+
if: contains(needs.affected.outputs.matrix, 'api-users')
4798
uses: JesusFilm/core/.github/workflows/api-deploy-worker.yml@main
4899
with:
49100
name: api-users
@@ -56,7 +107,10 @@ jobs:
56107
JFP_AWS_ACCESS_KEY_ID: ${{ secrets.JFP_AWS_ACCESS_KEY_ID }}
57108
JFP_AWS_SECRET_ACCESS_KEY: ${{ secrets.JFP_AWS_SECRET_ACCESS_KEY }}
58109
AWS_NETWORK_CONFIG: ${{ secrets.AWS_NETWORK_CONFIG }}
110+
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
59111
api-languages:
112+
needs: affected
113+
if: contains(needs.affected.outputs.matrix, 'api-languages')
60114
uses: JesusFilm/core/.github/workflows/api-deploy-worker.yml@main
61115
with:
62116
name: api-languages
@@ -69,7 +123,10 @@ jobs:
69123
JFP_AWS_ACCESS_KEY_ID: ${{ secrets.JFP_AWS_ACCESS_KEY_ID }}
70124
JFP_AWS_SECRET_ACCESS_KEY: ${{ secrets.JFP_AWS_SECRET_ACCESS_KEY }}
71125
AWS_NETWORK_CONFIG: ${{ secrets.AWS_NETWORK_CONFIG }}
126+
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
72127
api-media:
128+
needs: affected
129+
if: contains(needs.affected.outputs.matrix, 'api-media')
73130
uses: JesusFilm/core/.github/workflows/api-deploy-worker.yml@main
74131
with:
75132
name: api-media
@@ -82,8 +139,11 @@ jobs:
82139
JFP_AWS_ACCESS_KEY_ID: ${{ secrets.JFP_AWS_ACCESS_KEY_ID }}
83140
JFP_AWS_SECRET_ACCESS_KEY: ${{ secrets.JFP_AWS_SECRET_ACCESS_KEY }}
84141
AWS_NETWORK_CONFIG: ${{ secrets.AWS_NETWORK_CONFIG }}
142+
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
85143

86144
api-gateway:
145+
needs: affected
146+
if: contains(needs.affected.outputs.matrix, 'api-gateway')
87147
uses: JesusFilm/core/.github/workflows/api-gateway-prod-worker.yml@main
88148
secrets:
89149
AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}

.github/workflows/api-deploy-stage.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,50 @@ on:
33
push:
44
branches:
55
- stage
6+
permissions:
7+
contents: read
8+
checks: write
69
jobs:
10+
affected:
11+
runs-on: blacksmith-2vcpu-ubuntu-2204
12+
strategy:
13+
matrix:
14+
node-version: [22]
15+
env:
16+
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
17+
outputs:
18+
matrix: ${{ steps.set-matrix.outputs.matrix }}
19+
steps:
20+
- uses: actions/checkout@v4
21+
with:
22+
fetch-depth: 0
23+
- uses: useblacksmith/setup-node@v5
24+
with:
25+
node-version: ${{ matrix.node-version }}
26+
- name: Get Node Version
27+
id: node-version
28+
run: echo "version=$(node -v)" >> $GITHUB_OUTPUT
29+
- name: Mount NPM Cache
30+
uses: useblacksmith/stickydisk@v1
31+
with:
32+
key: ${{ github.repository }}-${{ steps.node-version.outputs.version }}-npm-cache
33+
path: ~/.npm
34+
- name: Mount node_modules
35+
uses: useblacksmith/stickydisk@v1
36+
with:
37+
key: ${{ github.repository }}-${{ steps.node-version.outputs.version }}-node-modules
38+
path: ./node_modules
39+
- name: NPM Install
40+
run: npm install --silent
41+
- uses: nrwl/nx-set-shas@v4
42+
- id: set-matrix
43+
name: set matrix app to affected array
44+
run: |
45+
echo "matrix=$(npx ts-node tools/scripts/affected-apps.ts --projects apis/*)" >> $GITHUB_OUTPUT
46+
cat $GITHUB_OUTPUT
747
api-analytics:
48+
needs: affected
49+
if: contains(needs.affected.outputs.matrix, 'api-analytics')
850
uses: JesusFilm/core/.github/workflows/api-deploy-worker.yml@stage
951
with:
1052
name: api-analytics
@@ -17,7 +59,10 @@ jobs:
1759
JFP_AWS_ACCESS_KEY_ID: ${{ secrets.JFP_AWS_ACCESS_KEY_ID }}
1860
JFP_AWS_SECRET_ACCESS_KEY: ${{ secrets.JFP_AWS_SECRET_ACCESS_KEY }}
1961
AWS_NETWORK_CONFIG: ${{ secrets.AWS_NETWORK_CONFIG }}
62+
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
2063
api-journeys:
64+
needs: affected
65+
if: contains(needs.affected.outputs.matrix, 'api-journeys')
2166
uses: JesusFilm/core/.github/workflows/api-deploy-worker.yml@stage
2267
with:
2368
name: api-journeys
@@ -30,7 +75,10 @@ jobs:
3075
JFP_AWS_ACCESS_KEY_ID: ${{ secrets.JFP_AWS_ACCESS_KEY_ID }}
3176
JFP_AWS_SECRET_ACCESS_KEY: ${{ secrets.JFP_AWS_SECRET_ACCESS_KEY }}
3277
AWS_NETWORK_CONFIG: ${{ secrets.AWS_NETWORK_CONFIG }}
78+
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
3379
api-journeys-modern:
80+
needs: affected
81+
if: contains(needs.affected.outputs.matrix, 'api-journeys-modern')
3482
uses: JesusFilm/core/.github/workflows/api-deploy-worker.yml@stage
3583
with:
3684
name: api-journeys-modern
@@ -43,7 +91,10 @@ jobs:
4391
JFP_AWS_ACCESS_KEY_ID: ${{ secrets.JFP_AWS_ACCESS_KEY_ID }}
4492
JFP_AWS_SECRET_ACCESS_KEY: ${{ secrets.JFP_AWS_SECRET_ACCESS_KEY }}
4593
AWS_NETWORK_CONFIG: ${{ secrets.AWS_NETWORK_CONFIG }}
94+
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
4695
api-users:
96+
needs: affected
97+
if: contains(needs.affected.outputs.matrix, 'api-users')
4798
uses: JesusFilm/core/.github/workflows/api-deploy-worker.yml@stage
4899
with:
49100
name: api-users
@@ -56,7 +107,10 @@ jobs:
56107
JFP_AWS_ACCESS_KEY_ID: ${{ secrets.JFP_AWS_ACCESS_KEY_ID }}
57108
JFP_AWS_SECRET_ACCESS_KEY: ${{ secrets.JFP_AWS_SECRET_ACCESS_KEY }}
58109
AWS_NETWORK_CONFIG: ${{ secrets.AWS_NETWORK_CONFIG }}
110+
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
59111
api-languages:
112+
needs: affected
113+
if: contains(needs.affected.outputs.matrix, 'api-languages')
60114
uses: JesusFilm/core/.github/workflows/api-deploy-worker.yml@stage
61115
with:
62116
name: api-languages
@@ -69,7 +123,10 @@ jobs:
69123
JFP_AWS_ACCESS_KEY_ID: ${{ secrets.JFP_AWS_ACCESS_KEY_ID }}
70124
JFP_AWS_SECRET_ACCESS_KEY: ${{ secrets.JFP_AWS_SECRET_ACCESS_KEY }}
71125
AWS_NETWORK_CONFIG: ${{ secrets.AWS_NETWORK_CONFIG }}
126+
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
72127
api-media:
128+
needs: affected
129+
if: contains(needs.affected.outputs.matrix, 'api-media')
73130
uses: JesusFilm/core/.github/workflows/api-deploy-worker.yml@stage
74131
with:
75132
name: api-media
@@ -82,8 +139,11 @@ jobs:
82139
JFP_AWS_ACCESS_KEY_ID: ${{ secrets.JFP_AWS_ACCESS_KEY_ID }}
83140
JFP_AWS_SECRET_ACCESS_KEY: ${{ secrets.JFP_AWS_SECRET_ACCESS_KEY }}
84141
AWS_NETWORK_CONFIG: ${{ secrets.AWS_NETWORK_CONFIG }}
142+
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
85143

86144
api-gateway:
145+
needs: affected
146+
if: contains(needs.affected.outputs.matrix, 'api-gateway')
87147
uses: JesusFilm/core/.github/workflows/api-gateway-stage-worker.yml@stage
88148
secrets:
89149
AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}

.github/workflows/api-deploy-worker.yml

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,23 @@ on:
2626
required: true
2727
AWS_NETWORK_CONFIG:
2828
required: true
29+
NX_CLOUD_ACCESS_TOKEN:
30+
required: true
31+
permissions:
32+
contents: read
33+
checks: write
2934

3035
jobs:
3136
build-and-deploy:
32-
environment: Production
37+
environment: ${{ inputs.env }}
3338
env:
3439
HIVE_TOKEN: ${{ secrets.HIVE_TOKEN }}
3540
ENV_SUFFIX: ${{ inputs.branch }}
3641
ECS_CLUSTER: jfp-ecs-cluster-${{ inputs.env }}
3742
ECS_SERVICE: ${{ inputs.name}}-${{ inputs.env }}-service
3843
ECR_REPOSITORY: jfp-${{ inputs.name }}-${{ inputs.env }}
3944
IMAGE_TAG: ${{ github.sha }}
45+
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
4046
runs-on: blacksmith-2vcpu-ubuntu-2204
4147
strategy:
4248
matrix:
@@ -69,20 +75,13 @@ jobs:
6975
path: ./node_modules
7076
- name: NPM Install
7177
run: npm install --silent
72-
- name: Get affected apps
73-
run: |
74-
echo "apps=$(npx ts-node tools/scripts/affected-apps.ts --projects apis/api-*)" >> $GITHUB_OUTPUT
75-
cat $GITHUB_OUTPUT
76-
id: affected-apps
7778
- name: Prisma Generate
78-
if: contains(steps.affected-apps.outputs.apps, inputs.name)
7979
uses: mansagroup/nrwl-nx-action@v3
8080
with:
8181
targets: prisma-generate
8282
env:
8383
DISABLE_ERD: true
8484
- name: Build ${{ inputs.name }}
85-
if: contains(steps.affected-apps.outputs.apps, inputs.name)
8685
uses: mansagroup/nrwl-nx-action@v3
8786
with:
8887
targets: build
@@ -91,24 +90,20 @@ jobs:
9190

9291
# ECS Deployment
9392
- name: Configure ECS AWS credentials
94-
if: contains(steps.affected-apps.outputs.apps, inputs.name)
9593
uses: aws-actions/configure-aws-credentials@v4
9694
with:
9795
aws-access-key-id: ${{ secrets.JFP_AWS_ACCESS_KEY_ID }}
9896
aws-secret-access-key: ${{ secrets.JFP_AWS_SECRET_ACCESS_KEY }}
9997
aws-region: ${{ secrets.AWS_DEFAULT_REGION }}
10098

10199
- name: Login to Amazon ECR
102-
if: contains(steps.affected-apps.outputs.apps, inputs.name)
103100
id: login-ecr-ecs
104101
uses: aws-actions/amazon-ecr-login@v2
105102

106103
- name: Set up Docker Buildx
107-
if: contains(steps.affected-apps.outputs.apps, inputs.name)
108104
uses: docker/setup-buildx-action@v3
109105

110106
- name: Build and push Docker image to Amazon ECR
111-
if: contains(steps.affected-apps.outputs.apps, inputs.name)
112107
id: build-image-ecs
113108
uses: useblacksmith/build-push-action@v1
114109
with:
@@ -122,16 +117,13 @@ jobs:
122117
SERVICE_VERSION=${{ env.IMAGE_TAG }}
123118
124119
- name: Set image output
125-
if: contains(steps.affected-apps.outputs.apps, inputs.name)
126120
run: |
127121
echo "image=${{ steps.login-ecr-ecs.outputs.registry }}/${{ env.ECR_REPOSITORY }}:${{ env.IMAGE_TAG }}" >> $GITHUB_OUTPUT
128122
129123
- name: Restart task definition
130-
if: contains(steps.affected-apps.outputs.apps, inputs.name)
131124
run: |
132125
aws ecs update-service --force-new-deployment --service $ECS_SERVICE --cluster $ECS_CLUSTER
133126
134127
- name: Update Hive managed subgraph
135-
if: contains(steps.affected-apps.outputs.apps, inputs.name)
136128
run: |
137129
npx hive schema:publish apis/${{ inputs.name }}/schema.graphql --service ${{ inputs.name }} --url ${{ inputs.endpoint_url }} --github

0 commit comments

Comments
 (0)