mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-20 13:08:31 +02:00
Fixes for new CI pipeline (Github Actions)
- Support "[ci skip]" tag on commits to avoid build dupes - Add smarter path detection so we don't spam tons of tests - Allow steps to cancel if previous steps were cancelled (don't always run) - Separate workflows to be more modular
This commit is contained in:
parent
e3aa088fa7
commit
614d51a3dd
3 changed files with 104 additions and 51 deletions
4
.github/workflows/changelog.yaml
vendored
4
.github/workflows/changelog.yaml
vendored
|
@ -6,7 +6,7 @@ on:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
generate:
|
generate:
|
||||||
if: contains(toJson(github.event.commits), 'Update changelog') == false
|
if: contains(toJson(github.event.commits), '[ci skip]') == false
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
@ -83,6 +83,6 @@ jobs:
|
||||||
git config user.email "jrnl.bot@gmail.com"
|
git config user.email "jrnl.bot@gmail.com"
|
||||||
git config user.name "Jrnl Bot"
|
git config user.name "Jrnl Bot"
|
||||||
git add "$FILENAME"
|
git add "$FILENAME"
|
||||||
git commit -m "Update changelog"
|
git commit -m "Update changelog [ci skip]"
|
||||||
git push origin $BRANCH
|
git push origin $BRANCH
|
||||||
|
|
||||||
|
|
82
.github/workflows/docs.yaml
vendored
Normal file
82
.github/workflows/docs.yaml
vendored
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
name: Docs
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ develop, release ]
|
||||||
|
paths:
|
||||||
|
- 'docs/**'
|
||||||
|
- 'mkdocs.yml'
|
||||||
|
- 'readthedocs.yml'
|
||||||
|
pull_request_target:
|
||||||
|
branches: [ develop ]
|
||||||
|
paths:
|
||||||
|
- 'docs/**'
|
||||||
|
- 'mkdocs.yml'
|
||||||
|
- 'readthedocs.yml'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
accessibility:
|
||||||
|
if: contains(toJson(github.event.commits), '[ci skip]') == false
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: 3.9
|
||||||
|
|
||||||
|
- name: Setup Node.js environment
|
||||||
|
uses: actions/setup-node@main
|
||||||
|
|
||||||
|
- name: poetry cache
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: .venv
|
||||||
|
key: ${{ runner.os }}-${{ hashFiles('poetry.lock') }}-${{ matrix.python-version }}
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
pip install poetry
|
||||||
|
poetry config --local virtualenvs.in-project true
|
||||||
|
poetry install --no-root --remove-untracked
|
||||||
|
npm install pa11y pa11y-reporter-junit
|
||||||
|
|
||||||
|
- name: Start docs server
|
||||||
|
run: poetry run mkdocs serve &
|
||||||
|
|
||||||
|
- name: Accessibility testing (Pa11y)
|
||||||
|
run: poetry run .github/workflows/pa11y.sh
|
||||||
|
|
||||||
|
- name: Upload Unit Test Results
|
||||||
|
if: always()
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: Unit Test Results (pa11y)
|
||||||
|
path: reports/pa11y/*.xml
|
||||||
|
|
||||||
|
publish-test-results:
|
||||||
|
if: success() || failure()
|
||||||
|
name: "Publish Unit Tests Results"
|
||||||
|
needs: accessibility
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Download Artifacts
|
||||||
|
uses: actions/download-artifact@v2
|
||||||
|
with:
|
||||||
|
path: artifacts
|
||||||
|
|
||||||
|
- name: Publish Unit Test Results
|
||||||
|
uses: EnricoMi/publish-unit-test-result-action@v1.4
|
||||||
|
if: always()
|
||||||
|
with:
|
||||||
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
check_name: Unit Test Results
|
||||||
|
hide_comments: all but latest
|
||||||
|
comment_on_pr: true
|
||||||
|
files: '**/*.xml'
|
||||||
|
report_individual_runs: true
|
||||||
|
deduplicate_classes_by_file_name: false
|
||||||
|
|
69
.github/workflows/testing.yaml
vendored
69
.github/workflows/testing.yaml
vendored
|
@ -3,11 +3,24 @@ name: Testing
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ develop, release ]
|
branches: [ develop, release ]
|
||||||
|
paths:
|
||||||
|
- 'jrnl/**'
|
||||||
|
- 'features/**'
|
||||||
|
- 'tests/**'
|
||||||
|
- 'poetry.lock'
|
||||||
|
- 'pyproject.toml'
|
||||||
pull_request_target:
|
pull_request_target:
|
||||||
branches: [ develop ]
|
branches: [ develop ]
|
||||||
|
paths:
|
||||||
|
- 'jrnl/**'
|
||||||
|
- 'features/**'
|
||||||
|
- 'tests/**'
|
||||||
|
- 'poetry.lock'
|
||||||
|
- 'pyproject.toml'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
test:
|
||||||
|
if: contains(toJson(github.event.commits), '[ci skip]') == false
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
|
@ -35,79 +48,37 @@ jobs:
|
||||||
poetry install --remove-untracked
|
poetry install --remove-untracked
|
||||||
|
|
||||||
- name: Code formatting (Black)
|
- name: Code formatting (Black)
|
||||||
if: always()
|
if: success() || failure()
|
||||||
run: |
|
run: |
|
||||||
poetry run black --version
|
poetry run black --version
|
||||||
poetry run black --check --diff .
|
poetry run black --check --diff .
|
||||||
|
|
||||||
- name: Code Style (PyFlakes)
|
- name: Code Style (PyFlakes)
|
||||||
if: always()
|
if: success() || failure()
|
||||||
run: |
|
run: |
|
||||||
poetry run pyflakes --version
|
poetry run pyflakes --version
|
||||||
poetry run pyflakes jrnl features tests
|
poetry run pyflakes jrnl features tests
|
||||||
|
|
||||||
- name: Test with pytest
|
- name: Test with pytest
|
||||||
if: always()
|
if: success() || failure()
|
||||||
run: poetry run pytest --junitxml=reports/pytest/results.xml
|
run: poetry run pytest --junitxml=reports/pytest/results.xml
|
||||||
|
|
||||||
- name: Test with behave
|
- name: Test with behave
|
||||||
if: always()
|
if: success() || failure()
|
||||||
run: poetry run behave --no-skipped --format progress2 --junit --junit-directory reports/behave
|
run: poetry run behave --no-skipped --format progress2 --junit --junit-directory reports/behave
|
||||||
|
|
||||||
- name: Upload Unit Test Results
|
- name: Upload Unit Test Results
|
||||||
if: always()
|
if: success() || failure()
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: Unit Test Results
|
name: Unit Test Results
|
||||||
path: reports/**/*.xml
|
path: reports/**/*.xml
|
||||||
|
|
||||||
|
|
||||||
accessibility:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Set up Python
|
|
||||||
uses: actions/setup-python@v2
|
|
||||||
with:
|
|
||||||
python-version: 3.9
|
|
||||||
|
|
||||||
- name: Setup Node.js environment
|
|
||||||
uses: actions/setup-node@main
|
|
||||||
|
|
||||||
- name: poetry cache
|
|
||||||
uses: actions/cache@v2
|
|
||||||
with:
|
|
||||||
path: .venv
|
|
||||||
key: ${{ runner.os }}-${{ hashFiles('poetry.lock') }}-${{ matrix.python-version }}
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
pip install poetry
|
|
||||||
poetry config --local virtualenvs.in-project true
|
|
||||||
poetry install --no-root --remove-untracked
|
|
||||||
npm install pa11y pa11y-reporter-junit
|
|
||||||
|
|
||||||
- name: Start docs server
|
|
||||||
run: poetry run mkdocs serve &
|
|
||||||
|
|
||||||
- name: Accessibility testing (Pa11y)
|
|
||||||
run: poetry run .github/workflows/pa11y.sh
|
|
||||||
|
|
||||||
# leaving this out for now (there are too many warnings)
|
|
||||||
# - name: Upload Unit Test Results
|
|
||||||
# if: always()
|
|
||||||
# uses: actions/upload-artifact@v2
|
|
||||||
# with:
|
|
||||||
# name: Unit Test Results (pa11y)
|
|
||||||
# path: reports/pa11y/*.xml
|
|
||||||
|
|
||||||
publish-test-results:
|
publish-test-results:
|
||||||
|
if: success() || failure()
|
||||||
name: "Publish Unit Tests Results"
|
name: "Publish Unit Tests Results"
|
||||||
needs: [test, accessibility]
|
needs: test
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: always()
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Download Artifacts
|
- name: Download Artifacts
|
||||||
|
|
Loading…
Add table
Reference in a new issue