-
Notifications
You must be signed in to change notification settings - Fork 104
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
57 changed files
with
13,610 additions
and
2,006 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,35 +7,28 @@ jobs: | |
strategy: | ||
fail-fast: false | ||
matrix: | ||
python-version: ["3.7", "3.8", "3.9", "3.10"] | ||
django-version: ["2.2", "3.2", "4.0"] | ||
grappelli: ["0"] | ||
grappelli: ["0", "1"] | ||
python-version: ["3.11"] | ||
django-version: ["4.2"] | ||
exclude: | ||
- python-version: "3.7" | ||
django-version: "4.0" | ||
- python-version: "3.10" | ||
django-version: "2.2" | ||
# Exclude some version combos that don't need to be tested (since | ||
# the combination of python and django versions is unlikely to | ||
# be germane to django-nested-admin) | ||
- python-version: "3.8" | ||
django-version: "3.2" | ||
- python-version: "3.9" | ||
django-version: "4.0" | ||
- python-version: "3.11" | ||
grappelli: "1" | ||
include: | ||
- grappelli: "0" | ||
name-suffix: "" | ||
- grappelli: "1" | ||
name-suffix: " + grappelli" | ||
python-version: "3.7" | ||
django-version: "2.2" | ||
- grappelli: "1" | ||
name-suffix: " + grappelli" | ||
python-version: "3.10" | ||
django-version: "3.2" | ||
- python-version: "3.9" | ||
django-version: "4.2" | ||
grappelli: "1" | ||
- python-version: "3.9" | ||
django-version: "5.0" | ||
grappelli: "0" | ||
- python-version: "3.10" | ||
django-version: "5.0" | ||
grappelli: "1" | ||
- python-version: "3.12" | ||
django-version: "5.1" | ||
grappelli: "0" | ||
|
||
runs-on: ubuntu-latest | ||
name: Django ${{ matrix.django-version }} (Python ${{ matrix.python-version }})${{ matrix.name-suffix }} | ||
name: Django ${{ matrix.django-version }} (Python ${{ matrix.python-version }})${{ matrix.grappelli == '1' && ' + grappelli' || '' }} | ||
|
||
env: | ||
DJANGO: ${{ matrix.django-version }} | ||
|
@@ -45,47 +38,49 @@ jobs: | |
NODE_ENV: test | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
- uses: actions/checkout@v3 | ||
|
||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v2 | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
|
||
- name: Setup chromedriver | ||
uses: nanasess/[email protected] | ||
# uses: nanasess/[email protected] | ||
uses: nanasess/setup-chromedriver@42cc2998329f041de87dc3cfa33a930eacd57eaa | ||
|
||
- name: Install tox | ||
run: | | ||
python3 -m pip install tox tox-gh-actions | ||
- name: Cache instrumented static files | ||
id: cache-test-dist | ||
uses: actions/cache@v2 | ||
uses: actions/cache@v3 | ||
with: | ||
path: nested_admin/tests/static | ||
key: test-dist-${{ hashFiles('package-lock.json', '.github/workflows/test.yml', 'webpack.config.js', 'package.json', '.*rc*', 'frontend/**') }} | ||
key: test-dist-${{ hashFiles('package-lock.json', '.github/workflows/test.yml', 'webpack.config.js', 'package.json', '.*rc*', 'nested_admin/static/nested_admin/src/**/*.*s') }} | ||
|
||
- name: Cache node_modules | ||
id: cache-node_modules | ||
uses: actions/cache@v2 | ||
uses: actions/cache@v3 | ||
with: | ||
path: node_modules | ||
key: node_modules-${{ hashFiles('package-lock.json') }} | ||
|
||
- name: Setup nodejs 12 | ||
if: steps.cache-test-dist.outputs.cache-hit != 'true' || steps.cache-node_modules.outputs.cache-hit != 'true' | ||
uses: actions/setup-node@v2 | ||
- name: Setup nodejs | ||
if: steps.cache-test-dist.outputs.cache-hit != 'true' | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: '12' | ||
node-version: '16' | ||
cache: 'npm' | ||
|
||
- name: npm ci | ||
if: steps.cache-test-dist.outputs.cache-hit != 'true' || steps.cache-node_modules.outputs.cache-hit != 'true' | ||
if: steps.cache-test-dist.outputs.cache-hit != 'true' && steps.cache-node_modules.outputs.cache-hit != 'true' | ||
run: | | ||
npm ci || npm ci || npm ci | ||
- name: Build instrumented static files | ||
if: steps.cache-test-dist.outputs.cache-hit != 'true' || steps.cache-node_modules.outputs.cache-hit != 'true' | ||
if: steps.cache-test-dist.outputs.cache-hit != 'true' | ||
run: | | ||
npm run build | ||
|
@@ -98,7 +93,7 @@ jobs: | |
|
||
- name: Upload junit xml | ||
if: always() | ||
uses: actions/upload-artifact@v2 | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: junit-reports | ||
path: reports/*.xml | ||
|
@@ -115,27 +110,96 @@ jobs: | |
env: | ||
CODECOV_NAME: ${{ github.workflow }} | ||
|
||
lint: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
tool: ["flake8", "black", "eslint", "stylelint"] | ||
include: | ||
- tool: flake8 | ||
language: python | ||
- tool: black | ||
language: python | ||
- tool: eslint | ||
language: javascript | ||
- tool: stylelint | ||
language: javascript | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
- uses: actions/setup-python@v4 | ||
if: matrix.language == 'python' | ||
with: | ||
python-version: 3.9 | ||
|
||
- name: Cache node_modules | ||
if: matrix.language == 'javascript' | ||
id: cache-node_modules | ||
uses: actions/cache@v3 | ||
with: | ||
path: node_modules | ||
key: node_modules-${{ hashFiles('package-lock.json') }}-lint | ||
restore-keys: | | ||
node_modules-${{ hashFiles('package-lock.json') }} | ||
- name: Setup nodejs | ||
if: matrix.language == 'javascript' | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: '16' | ||
cache: 'npm' | ||
|
||
- name: npm ci | ||
if: matrix.language == 'javascript' && steps.cache-node_modules.outputs.cache-hit != 'true' | ||
run: | | ||
npm ci || npm ci || npm ci | ||
- name: Run black | ||
if: matrix.tool == 'black' | ||
uses: psf/black@stable | ||
with: | ||
src: "nested_admin docs setup.py" | ||
version: "22.8.0" | ||
|
||
- name: Install flake8 | ||
if: matrix.tool == 'flake8' | ||
run: pip install flake8 | ||
|
||
- name: Run flake8 | ||
if: matrix.tool == 'flake8' | ||
uses: suo/flake8-github-action@releases/v1 | ||
with: | ||
checkName: 'lint' | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Run ${{ matrix.tool }} | ||
if: matrix.language == 'javascript' | ||
run: | | ||
npm run lint:${{ matrix.tool }} | ||
report: | ||
if: always() | ||
needs: build | ||
runs-on: ubuntu-latest | ||
name: "Report Test Results" | ||
steps: | ||
- uses: actions/download-artifact@v2 | ||
- uses: actions/download-artifact@v3 | ||
with: | ||
name: junit-reports | ||
|
||
- name: Publish tests report | ||
uses: mikepenz/action-junit-report@5703ba1461f35871cde0208140d737d3e1eef38f | ||
uses: mikepenz/action-junit-report@1a91e26932fb7ba410a31fab1f09266a96d29971 | ||
with: | ||
report_paths: ./*.xml | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
require_tests: true | ||
fail_on_failure: true | ||
check_name: Test Report | ||
|
||
success: | ||
needs: report | ||
needs: [lint, report] | ||
runs-on: ubuntu-latest | ||
name: Test Successful | ||
steps: | ||
|
Oops, something went wrong.