-
-
Notifications
You must be signed in to change notification settings - Fork 81
140 lines (122 loc) Β· 5.44 KB
/
cloudflare.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
138
139
140
name: Cloudflare Pages
concurrency:
group: ${{ github.head_ref }}-cloudflare-build
on:
pull_request:
push:
branches:
- main
# Use `bash --noprofile --norc -exo pipefail` by default for all `run` steps in this workflow:
# https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#defaultsrun
defaults:
run:
shell: bash
jobs:
publish:
runs-on: actions-runner-large
permissions:
pull-requests: write
name: ${{ github.ref == 'refs/heads/main' && '(Production)' || '(Preview)' }} Publish to Cloudflare Pages
steps:
- name: Comment deploy start
if: github.event_name != 'push'
continue-on-error: true
uses: mshick/add-pr-comment@b8f338c590a895d50bcbfa6c5859251edc8952fc # v2
with:
message-id: cloudflare-deploy
message: |
### π§ Deploy Preview building...
| Name | Link |
|---------------------|-------------------------------------------------------------------------------|
|π¨ Latest commit | ${{ github.sha }} |
|π Latest deploy log | https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} |
---
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
with:
# This is needed for the "last updated" field to update correctly.
fetch-depth: 1
- name: Prefetch contributor icons
shell: bash
run: |
#!/bin/bash
## Loop through each contributor
## TODO: reenable later
#while read -r contributor; do
# avatar_url=$(echo "$contributor" | grep -oP '"avatar_url": "\K[^"]+')
#
# # Download the image
# wget -q "$avatar_url" -O temp_avatar
#
# # Generate new filename with original extension
# new_filename="public/assets/contributors/$(basename "$avatar_url" | cut -d '?' -f 1)"
#
# echo "converting file: $avatar_url"
# EXT=${FILE##*.} # file extension
# QUALITY=75 # quality for the image
# # convert the image using cwebp and output a file with the extension replaced as .webp
# cwebp -mt -m 6 -q $QUALITY -resize 32 32 "temp_avatar" -o "${new_filename}.webp" &>/dev/null
# rm temp_avatar
#
#done < src/assets/contributors.json
- name: Setup astro Cache
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
with:
# Cache for build and optimized images.
key: astro-${{ hashFiles('package-lock.json') }}
path: ./.astro
restore-keys: astro-
- name: Setup npm Cache
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
with:
# Cache for npm
path: ~/.npm
key: npm-${{ hashFiles('package-lock.json') }}
restore-keys: npm-
- name: Setup node_modules Cache
id: modulescache
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
with:
# Cache for npm and optimized images.
path: ./node_modules
key: modules-${{ hashFiles('package-lock.json') }}
- name: Setup Node
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4
with:
node-version-file: .nvmrc
- name: Install Packages
if: steps.modulescache.outputs.cache-hit != 'true'
run: npm ci
- name: Check
run: npm run check
- name: Build
run: npm run build
- name: Publish to Cloudflare Pages
id: cloudflare
continue-on-error: true
uses: cloudflare/pages-action@f0a1cd58cd66095dee69bfa18fa5efd1dde93bca # v1
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
# By default Cloudflare marks `main` as the "production" branch.
# So when this workflow is pushed to refs/heads/main, we set the branch to `main`/"production".
branch: ${{ github.ref == 'refs/heads/main' && 'main' || github.head_ref }}
# The project name in Cloudflare
projectName: website
directory: ./build
wranglerVersion: "3"
- name: Comment deploy url
if: github.event_name != 'push'
continue-on-error: true
uses: mshick/add-pr-comment@b8f338c590a895d50bcbfa6c5859251edc8952fc # v2
with:
message-id: cloudflare-deploy
message: |
### β
Deploy Preview ready!
| Name | Link |
|----------------------|-------------------------------------------------------------------------------|
|π¨ Latest commit | ${{ github.sha }} |
|π Latest deploy log | https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} |
|π Deploy Preview Url | [${{ steps.cloudflare.outputs.url }}](${{ steps.cloudflare.outputs.url }}) |
|π³ Environment | ${{ steps.cloudflare.outputs.environment }} |
---