try immortal theme #44
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
name: Render documentation | |
# see https://github.com/actions/setup-python#using-setup-python-with-a-self-hosted-runner | |
# for artifact handling and SBOM: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts | |
on: | |
push: | |
#pull_request: # Not necessary, as it is already been executed on push | |
workflow_dispatch: | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
env: | |
FORCE_COLOR: "1" | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3" | |
cache: 'pip' # caching pip dependencies | |
- name: print versions for debugging | |
run: python --version ; pip --version ; whoami | |
- name: Install graphviz & default-jdk | |
run: sudo apt-get install graphviz default-jdk | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install setuptools | |
python -m pip install -r ./docs/requirements.txt | |
python -m pip install . | |
- name: Lint the project with sphinx-lint | |
run: | | |
sphinx-lint | |
- name: Test with pytest | |
run: | | |
coverage run --branch --data-file=./docs/_static/_external_data/coverage.file -m pytest ./tests/ --junitxml=./docs/_static/_external_data/merge_dicts_test_results.xml --report-log=./docs/_static/_external_data/merge_dicts_test_log.json | |
coverage xml --data-file=./docs/_static/_external_data/coverage.file -o ./docs/_static/_external_data/coverage.xml | |
coverage json --data-file=./docs/_static/_external_data/coverage.file -o ./docs/_static/_external_data/coverage.json | |
coverage html --data-file=./docs/_static/_external_data/coverage.file -d ./docs/_static/_external_data/coverage_html | |
- name: Archive pytest test results | |
uses: actions/upload-artifact@v4 | |
with: | |
name: pytest-results | |
path: | | |
./docs/_static/_external_data/merge_dicts_test_results.xml | |
./docs/_static/_external_data/merge_dicts_test_log.json | |
# Use always() to always run this step to publish test results when there are test failures | |
if: ${{ always() }} | |
- name: Archive code coverage results | |
uses: actions/upload-artifact@v4 | |
with: | |
name: code-coverage-report | |
path: | | |
./docs/_static/_external_data/coverage.file | |
./docs/_static/_external_data/coverage.xml | |
./docs/_static/_external_data/coverage.json | |
./docs/_static/_external_data/coverage_html | |
# Use always() to always run this step to publish test results when there are test failures | |
if: ${{ always() }} | |
- name: Setup Pages | |
id: pages | |
uses: actions/configure-pages@v5 | |
- name: Render the documentation | |
run: > | |
sphinx-build | |
-b html ./docs ./public | |
-vv | |
--jobs=auto | |
--show-traceback | |
--fail-on-warning | |
--keep-going | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
path: ./public | |
# Deployment job | |
deploy: | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
runs-on: ubuntu-latest | |
needs: build | |
if: github.ref == 'refs/heads/main' | |
steps: | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v4 | |
Push2Gitlab: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Push To Gitlab | |
env: | |
token: ${{ secrets.GITLAB_ACCESS_TOKEN }} | |
run: | | |
echo Starting to push repo to gitlab | |
#git config list | |
echo Starting to configure git | |
git config user.name "PhilipPartsch" | |
git config user.email "[email protected]" | |
git remote add gitlab "https://PhilipPartsch:${token}@gitlab.com/PhilipPartsch/reconf2023-product-as-code.git" | |
git config --add remote.gitlab.push "+refs/heads/*:refs/heads/*" | |
git config --add remote.gitlab.push "+refs/tags/*:refs/tags/*" | |
git config --add remote.gitlab.push "+refs/change/*:refs/change/*" | |
echo Finished to configure git | |
#git config list | |
echo Unshallow from origin | |
git fetch --unshallow origin | |
echo Call git push | |
git push --mirror gitlab | |
echo Finished push of repo to gitlab |