forked from skills/introduction-to-github
-
Notifications
You must be signed in to change notification settings - Fork 4
145 lines (111 loc) · 5.04 KB
/
githubTest.yml
File metadata and controls
145 lines (111 loc) · 5.04 KB
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
name: GitHub Test
on:
repository_dispatch:
types:
[test_pr]
jobs:
runTests:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Setup Node.js environment
uses: actions/setup-node@v2.1.5
- name: Install octokit/core.js
run: npm install @octokit/core
- name: Install xmlhttprequest
run: npm install xmlhttprequest
- name: Setup Python environment
uses: actions/setup-python@v4
with:
python-version: '>=3.7'
- name: Setup Git environment
run: |
git config --global user.email "byucomputingbootcamptests@gmail.com"
git config --global user.name "BYU Computing Bootcamp Tests"
#Get Repository that isn't currently being checked
- name: Get a Pull Request's Repo Name that isn't already being checked
run: node .cbc/getRepoInfo.js ${{ secrets.AUTH_TOKEN }} full_name > repo.txt
- name: Save Repository name as Output Variable
id: repo
uses: juliangruber/read-file-action@v1
with:
path: repo.txt
- name: Get the Pull Request's Number
run: node .cbc/getRepoInfo.js ${{ secrets.AUTH_TOKEN }} number > number.txt
- name: Save Repository Number as Output Variable
id: number
uses: juliangruber/read-file-action@v1
with:
path: number.txt
- name: Add "currentlyBeingChecked" label
run: node .cbc/addLabel.js ${{ secrets.AUTH_TOKEN }} ${{ steps.number.outputs.content }} currentlyBeingChecked
#INSERT TESTING CODE HERE!
- name : Get Step File
id: getStepFile
run: node .cbc/getFile.js ${{ secrets.AUTH_TOKEN }} ${{ steps.repo.outputs.content }} .github/script/STEP > step
- name: Comment
run: node .cbc/makeComment.js ${{ secrets.AUTH_TOKEN }} ${{ steps.number.outputs.content }} "Got step file"
- name: Read Step File
id: readStepFile
uses: juliangruber/read-file-action@v1
with:
path: step
- name: Comment
run: node .cbc/makeComment.js ${{ secrets.AUTH_TOKEN }} ${{ steps.number.outputs.content }} "Read step file"
- name: Assert correct step
id: checkStepFile
uses: therussiankid92/gat@v1.5
with:
assertion: should.equal
actual: ${{ steps.readStepFile.outputs.content }}
expected: ${{ secrets.LAST_STEP }}
- name: Comment
run: node .cbc/makeComment.js ${{ secrets.AUTH_TOKEN }} ${{ steps.number.outputs.content }} "Last step found"
#Issue Badge
- name: Get email.txt
id: getEmail
run: node .cbc/getFile.js ${{ secrets.AUTH_TOKEN }} ${{ steps.repo.outputs.content }} email.txt > email.txt
- name: Save Email as Output Variable
id: userEmail
uses: juliangruber/read-file-action@v1
with:
path: email.txt
- name: Comment
run: node .cbc/makeComment.js ${{ secrets.AUTH_TOKEN }} ${{ steps.number.outputs.content }} "Email found - ${{ steps.userEmail.outputs.content }}"
- name: Issue Badge
id: issueBadge
run: node .cbc/badgeAPI.js ${{secrets.USERNAME}} ${{secrets.PASSWORD}} ${{ steps.userEmail.outputs.content }}
- name: Comment
run: node .cbc/makeComment.js ${{ secrets.AUTH_TOKEN }} ${{ steps.number.outputs.content }} "Badge Issued. Congratulations!"
#INSERT FAILURE COMMENTS HERE
- name: Failure Comment
if: always() && steps.getStepFile.outcome == 'failure'
run: node .cbc/makeComment.js ${{ secrets.AUTH_TOKEN }} ${{ steps.number.outputs.content }} "Error - step file not found"
- name: Failure Comment
if: always() && steps.readStepFile.outcome == 'failure'
run: node .cbc/makeComment.js ${{ secrets.AUTH_TOKEN }} ${{ steps.number.outputs.content }} "Error - step file not readable"
- name: Failure Comment
if: always() && steps.checkStepFile.outcome == 'failure'
run: node .cbc/makeComment.js ${{ secrets.AUTH_TOKEN }} ${{ steps.number.outputs.content }} "Error - step file incorrect"
#Failure Output for Issue Badge
- name: Failure Comment
if: always() && steps.getEmail.outcome == 'failure'
run: node .cbc/makeComment.js ${{ secrets.AUTH_TOKEN }} ${{ steps.number.outputs.content }} "Error - No email.txt found"
- name: Failure Comment
if: always() && steps.issueBadge.outcome == 'failure'
run: node .cbc/makeComment.js ${{ secrets.AUTH_TOKEN }} ${{ steps.number.outputs.content }} "Error - Badge issue failed - Email Address wasn't valid"
#Close Pull Request
- name: Close Pull Request
if: always()
uses: peter-evans/close-pull@v1
with:
pull-request-number: ${{ steps.number.outputs.content }}
comment: Auto-closing pull request after submission
delete-branch: false
- name: Remove Previous Labels
if: always()
run: node .cbc/removeAllLabels.js ${{ secrets.AUTH_TOKEN }} ${{ steps.number.outputs.content }}
- name: Add "checkComplete" label
if: always()
run: node .cbc/addLabel.js ${{ secrets.AUTH_TOKEN }} ${{ steps.number.outputs.content }} checkComplete