diff --git a/.github/workflows/changelog.yaml b/.github/workflows/changelog.yaml index 90e7ef2e..6922aa60 100644 --- a/.github/workflows/changelog.yaml +++ b/.github/workflows/changelog.yaml @@ -6,7 +6,7 @@ on: jobs: generate: - if: contains(toJson(github.event.commits), 'Update changelog') == false + if: contains(toJson(github.event.commits), '[ci skip]') == false runs-on: ubuntu-latest steps: @@ -83,6 +83,6 @@ jobs: git config user.email "jrnl.bot@gmail.com" git config user.name "Jrnl Bot" git add "$FILENAME" - git commit -m "Update changelog" + git commit -m "Update changelog [ci skip]" git push origin $BRANCH diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml new file mode 100644 index 00000000..acbbf49f --- /dev/null +++ b/.github/workflows/docs.yaml @@ -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 + diff --git a/.github/workflows/testing.yaml b/.github/workflows/testing.yaml index 34c07ccc..661b4144 100644 --- a/.github/workflows/testing.yaml +++ b/.github/workflows/testing.yaml @@ -3,11 +3,24 @@ name: Testing on: push: branches: [ develop, release ] + paths: + - 'jrnl/**' + - 'features/**' + - 'tests/**' + - 'poetry.lock' + - 'pyproject.toml' pull_request_target: branches: [ develop ] + paths: + - 'jrnl/**' + - 'features/**' + - 'tests/**' + - 'poetry.lock' + - 'pyproject.toml' jobs: test: + if: contains(toJson(github.event.commits), '[ci skip]') == false runs-on: ${{ matrix.os }} strategy: matrix: @@ -35,79 +48,37 @@ jobs: poetry install --remove-untracked - name: Code formatting (Black) - if: always() + if: success() || failure() run: | poetry run black --version poetry run black --check --diff . - name: Code Style (PyFlakes) - if: always() + if: success() || failure() run: | poetry run pyflakes --version poetry run pyflakes jrnl features tests - name: Test with pytest - if: always() + if: success() || failure() run: poetry run pytest --junitxml=reports/pytest/results.xml - name: Test with behave - if: always() + if: success() || failure() run: poetry run behave --no-skipped --format progress2 --junit --junit-directory reports/behave - name: Upload Unit Test Results - if: always() + if: success() || failure() uses: actions/upload-artifact@v2 with: name: Unit Test Results 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: + if: success() || failure() name: "Publish Unit Tests Results" - needs: [test, accessibility] + needs: test runs-on: ubuntu-latest - if: always() steps: - name: Download Artifacts