-
Notifications
You must be signed in to change notification settings - Fork 4
157 lines (126 loc) · 3.61 KB
/
review.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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# SPDX-FileCopyrightText: 2021 - 2023 Mewbot Developers <mewbot@quicksilver.london>
#
# SPDX-License-Identifier: BSD-2-Clause
name: Auto-Review
run-name: "Automated code review for \"${{ github.head_ref }}\""
on:
push:
branches:
- mainline
pull_request: # All pull requests
concurrency:
group: review-${{ github.head_ref }}
cancel-in-progress: true
env:
# Which version of the reports Sonar receives.
DEFAULT_OS: ubuntu
DEFAULT_PYTHON: "3.10"
jobs:
test:
name: ${{ matrix.name }} Python code (${{ matrix.os }}/py${{ matrix.version }})
runs-on: ${{ matrix.os }}-latest
strategy:
fail-fast: false
matrix:
name: ["lint", "test"]
os: ["ubuntu", "macos", "windows"]
version: ["3.10", "3.11"]
exclude:
- name: Lint
os: macos
- name: Lint
os: windows
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python ${{ matrix.version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.version }}
cache: pip
cache-dependency-path: |
requirements.txt
requirements-dev.txt
- name: Install mewbot-dev-tools to allow dep install
shell: bash
run: pip install mewbot-dev-tools
- name: Install dependencies
shell: bash
run: python -m mewbot_dev_tools.install_deps
- name: Run Tests
shell: bash
run: |
PYTHONPATH="$(python -m mewbot_dev_tools.path)"
readonly PYTHONPATH
export PYTHONPATH
mewbot-${{ matrix.name }}
- name: Upload Artifacts
uses: actions/upload-artifact@v3
if: always()
with:
name: ${{ matrix.name }}-results-${{ matrix.os }}-${{ matrix.version }}
path: reports
tests-passed:
name: Tests Passed
runs-on: ubuntu-latest
needs:
- test
steps:
- name: Mark all test runs as successful
run: /bin/true
annotate:
name: Output Annotations
runs-on: ubuntu-latest
needs:
- test
if: always()
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.DEFAULT_PYTHON }}
cache: pip
cache-dependency-path: |
requirements.txt
requirements-dev.txt
- name: Download Artifacts
uses: actions/download-artifact@v3
if: always()
with:
path: reports
- name: Install mewbot-dev-tools
shell: bash
run: python -m pip install mewbot-dev-tools
- name: Output Annotations
shell: bash
run: python -m mewbot_dev_tools.annotate
sonarcloud:
name: SonarCloud
runs-on: ubuntu-latest
if: always()
needs:
- test
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Download Artifacts
uses: actions/download-artifact@v3
if: always()
with:
name: lint-results-${{ env.DEFAULT_OS }}-${{ env.DEFAULT_PYTHON }}
path: reports
- name: Download Artifacts
uses: actions/download-artifact@v3
if: always()
with:
name: test-results-${{ env.DEFAULT_OS }}-${{ env.DEFAULT_PYTHON }}
path: reports
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
if: always()
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}