-
-
Notifications
You must be signed in to change notification settings - Fork 87
113 lines (94 loc) · 4.13 KB
/
pr-previews.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
name: PR Preview
run-name: Preview of pr ${{ github.event.pull_request.number }} by ${{ github.event.pull_request.user.login }}
on:
pull_request_target:
types: [opened, reopened, synchronize, closed]
permissions:
pull-requests: write # Required to add a comment to the PR
contents: read # Required to checkout the PR branch
jobs:
Deploy:
runs-on: ubuntu-20.04
if: ${{ github.event.action != 'closed' }}
steps:
- name: Create the comment to be updated
uses: marocchino/sticky-pull-request-comment@v2
with:
message: |
### 👷 Deploy Preview for javalin.io processing.
| Name | Link |
|-|-|
| 🔨 Latest commit | ${{ github.event.pull_request.head.sha }} |
| 🔍 Latest deploy log | ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} |
- name: Checkout the PR branch
uses: actions/checkout@v3
with:
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- name: Setup Node.js environment
uses: actions/[email protected]
with:
node-version: 18
- name: Setup Ruby and Gems
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7.4
bundler-cache: true
- name: Update contributor list
run: |
echo "Generating contributor list"
cd _data
node update-contributors.js
cd ..
- name: Build jekyll site
run: bundle exec jekyll build
- name: Install surge
run: npm install -g surge
- name: Deploy to surge
run: surge --project ./_site --token ${{ secrets.SURGE_TOKEN }} --domain javalin-pr-${{ github.event.pull_request.number }}-preview.surge.sh
- name: Update comment to Preview Ready
uses: marocchino/sticky-pull-request-comment@v2
with:
message: |
### ✅ Deploy Preview for javalin.io ready!
| Name | Link |
|-|-|
| 🔨 Latest commit | ${{ github.event.pull_request.head.sha }} |
| 🔍 Latest deploy log | ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} |
| 🌐 Preview | https://javalin-pr-${{ github.event.pull_request.number }}-preview.surge.sh |
- if: ${{ failure() }}
name: Update comment to Preview Failed
uses: marocchino/sticky-pull-request-comment@v2
with:
message: |
### ❌ Deploy Preview for javalin.io failed.
| Name | Link |
|-|-|
| 🔨 Latest commit | ${{ github.event.pull_request.head.sha }} |
| 🔍 Latest deploy log | ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} |
Teardown:
runs-on: ubuntu-20.04
if: ${{ github.event.action == 'closed' }}
steps:
- name: Install surge
run: npm install -g surge
- name: Tear down surge
run: surge teardown javalin-pr-${{ github.event.pull_request.number }}-preview.surge.sh --token ${{ secrets.SURGE_TOKEN }}
- name: Update comment to Preview Deleted
uses: marocchino/sticky-pull-request-comment@v2
with:
message: |
### 🗑 Deploy Preview for javalin.io deleted.
| Name | Link |
|-|-|
| 🔨 Latest commit | ${{ github.event.pull_request.head.sha }} |
| 🔍 Latest deploy log | ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} |
- if: ${{ failure() }}
name: Update comment to Preview Delete Failed
uses: marocchino/sticky-pull-request-comment@v2
with:
message: |
### ❌ Delete Preview for javalin.io failed.
| Name | Link |
|-|-|
| 🔨 Latest commit | ${{ github.event.pull_request.head.sha }} |
| 🔍 Latest deploy log | ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} |