-
Notifications
You must be signed in to change notification settings - Fork 0
131 lines (123 loc) · 5.02 KB
/
it-test.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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
on:
pull_request:
push:
branches: [master]
jobs:
it-tests-use-input-default-values:
name: "IT Test - default inputs values should work fine on this repo"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Given the gh-action is used with default values
id: test-data
uses: ./
- uses: nick-fields/assert-action@aa0067e01f0f6545c31755d6ca128c5a3a14f6bf # v2
name: Then outputs.status value must be 0 as the project itself makes use of pre-commit validation
with:
expected: 0
actual: ${{ steps.test-data.outputs.status }}
comparison: exact
it-tests-use-input-extra-args:
name: "IT Test - custom extra-args should be honored"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Given the gh-action is used with extra-args=--help
id: test-data
uses: ./
with:
extra-args: --help
- uses: nick-fields/assert-action@aa0067e01f0f6545c31755d6ca128c5a3a14f6bf # v2.0.0
name: Then outputs.logs should contain some printed documentation
with:
expected: "usage: pre-commit run"
actual: ${{ steps.test-data.outputs.logs }}
comparison: contains
it-tests-output-status-failure:
name: "IT Test - output status should be 1 given pre-commit detected some issue"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Given a pre-commit-config not correctly respected
id: test-data
uses: ./
with:
extra-args: '--all-files'
config-path: '.github/tests/resources/fail-check/.pre-commit-config.yaml'
ignore-failure: 'true'
- uses: nick-fields/assert-action@aa0067e01f0f6545c31755d6ca128c5a3a14f6bf # v2.0.0
name: Then outputs.status value must be 1 as there are some errors
with:
expected: 1
actual: ${{ steps.test-data.outputs.status }}
comparison: exact
it-tests-output-status-success:
name: "IT Test - output status should be 0 given pre-commit detected no issue"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Given a pre-commit-config correctly respected
id: test-data
uses: ./
with:
extra-args: '--all-files'
config-path: '.github/tests/resources/success-check/.pre-commit-config.yaml'
ignore-failure: 'true'
- uses: nick-fields/assert-action@aa0067e01f0f6545c31755d6ca128c5a3a14f6bf # v2.0.0
name: Then outputs.status value must be 0 as there are no errors
with:
expected: 0
actual: ${{ steps.test-data.outputs.status }}
comparison: exact
it-tests-output-logs-failure:
name: "IT Test - output logs should contain failures given pre-commit detected some issue"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Given a pre-commit-config not correctly respected
id: test-data
uses: ./
with:
extra-args: '--all-files'
config-path: '.github/tests/resources/fail-check/.pre-commit-config.yaml'
ignore-failure: 'true'
- uses: nick-fields/assert-action@aa0067e01f0f6545c31755d6ca128c5a3a14f6bf # v2.0.0
name: Then it has to contain the failure message in the outputs.logs
with:
expected: "Failed"
actual: ${{ steps.test-data.outputs.logs }}
comparison: contains
it-tests-output-logs-success:
name: "IT Test - output logs should contain no failure given pre-commit detected no issue"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Given a pre-commit-config correctly respected
id: test-data
uses: ./
with:
extra-args: '--all-files'
config-path: '.github/tests/resources/success-check/.pre-commit-config.yaml'
ignore-failure: 'true'
- uses: nick-fields/assert-action@aa0067e01f0f6545c31755d6ca128c5a3a14f6bf # v2.0.0
name: Then it should not contain any 'Failed' in the outputs.logs
with:
expected: "Failed"
actual: ${{ steps.test-data.outputs.logs }}
comparison: notContains
it-tests:
name: "All IT Tests have to pass"
runs-on: ubuntu-latest
if: always()
needs:
# Add your tests here so that they prevent the merge of broken changes
- it-tests-use-input-default-values
- it-tests-use-input-extra-args
- it-tests-output-status-failure
- it-tests-output-status-success
- it-tests-output-logs-failure
- it-tests-output-logs-success
steps:
- uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe # v1.2.2
with:
jobs: ${{ toJSON(needs) }}