-
Notifications
You must be signed in to change notification settings - Fork 2
132 lines (107 loc) · 2.88 KB
/
main.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
132
name: Run CI
on:
push:
branches: [ "main" ]
pull_request:
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-20.04
strategy:
matrix:
pants-version: ["2.18.0rc3"]
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.9
uses: actions/setup-python@v3
with:
python-version: 3.9
- name: Tell Pants to use Python 3.9
run: |
echo "PANTS_PYTHON_INTERPRETER_CONSTRAINTS=['==3.9.*']" >> $GITHUB_ENV
- name: Initialize Pants
uses: pantsbuild/actions/init-pants@main
with:
# cache0 makes it easy to bust the cache if needed
gha-cache-key: cache1-test-py3.9-pants${{ matrix.pants-version }}
named-caches-hash: ${{ hashFiles('pants-plugins/*.lock') }}
- name: Test everything
run: |
./.github/get-pants.sh
/home/runner/bin/pants test ::
package:
runs-on: ubuntu-20.04
strategy:
matrix:
pants-version: ["2.18.0rc3"]
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.9
uses: actions/setup-python@v3
with:
python-version: 3.9
- name: Tell Pants to use Python 3.9
run: |
echo "PANTS_VERSION=${{ matrix.pants-version }}" >> $GITHUB_ENV
- name: Initialize Pants
uses: pantsbuild/actions/init-pants@main
with:
gha-cache-key: cache1-package-py3.9-pants${{ matrix.pants-version }}
named-caches-hash: ${{ hashFiles('pants-plugins/*.lock') }}
- name: Package all targets
run: |
./.github/get-pants.sh
/home/runner/bin/pants package ::
check-and-lint:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.9
uses: actions/setup-python@v3
with:
python-version: 3.9
- name: Run linters on all targets
run: |
./.github/get-pants.sh
/home/runner/bin/pants update-build-files --check lint ::
validate-tailor:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.9
uses: actions/setup-python@v3
with:
python-version: 3.9
- name: Validate that tailor files are up to date
run: |
./.github/get-pants.sh
/home/runner/bin/pants tailor --check ::
summarize:
needs:
- package
- check-and-lint
- validate-tailor
- test
runs-on: ubuntu-20.04
if: success()
outputs:
success: ${{ steps.setoutput.outputs.success }}
steps:
- id: setoutput
run: echo "success=true" >> $GITHUB_OUTPUT
ci:
runs-on: ubuntu-20.04
if: always() # always run, so we never skip the check
needs:
- summarize
steps:
- run: |
passed="${{needs.summarize.outputs.success}}"
if [[ $passed == "true" ]]; then
echo "CI succeeded"
exit 0
else
echo "CI failed"
exit 1
fi