update gitignore #83
Workflow file for this run
This file contains hidden or 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
| # Continuous Integration / Continuous Delivery | |
| name: CI/CD Pipeline | |
| # Triggers only on v* Tags | |
| on: | |
| push: | |
| tags: | |
| - v* | |
| # temporary trigger on all pushes to debug | |
| branches: | |
| - '**' | |
| # env: # Note: not available at compile time to use, ie in 'if' conditions or 'with' | |
| jobs: | |
| # RUN TEST SUITE ON ALL PLATFORMS | |
| test_n_build: | |
| if: ${{ vars.TEST_JOB_ON != 'false' && !contains(github.event.head_commit.message, '_CI_SKIP_') }} | |
| uses: boromir674/automated-workflows/.github/workflows/python-build.yml@develop | |
| with: | |
| job_matrix: "{\"platform\": [\"ubuntu-latest\", \"macos-latest\"], \"python-version\": [\"3.9\", \"3.10\", \"3.11\", \"3.12\"]}" | |
| distribute_tests: false # avoid perf decrease due to test distribution overhead | |
| # tests are too fast so cpu distribution overhead increases total test execution time | |
| # uses: boromir674/automated-workflows/.github/workflows/test_build.yml@develop | |
| # with: | |
| # # Spawn Job per combination of factors in JOB_MATRIX | |
| # # Python 3.7 has reached End of Life (EOL) on June 27th, 2023 | |
| # # Python 3.12 is in bugfix mode, same as 3.11 -> can start supporting 3.12 it | |
| # job_matrix: '{"platform": ["ubuntu-latest"], "python-version": ["3.10", "3.11", "3.12"]}' | |
| # build_installation: 'wheel' # Verify sdist and wheel installations/"builds" against Tests | |
| # # typecheck_policy: '1' # {0: Skip, 1: Run, 2: Run and allow failures} | |
| # # run_policy: '0' # Force skip of downstream 'test_build' Test Job | |
| # # artifact_name: 'BUILD_ARTIFACT' | |
| codecov_coverage_host: | |
| needs: test_n_build | |
| if: ${{ vars.CODECOV_JOB_ON != 'false' && !contains(github.event.head_commit.message, '_CI_SKIP_') }} | |
| uses: ./.github/workflows/codecov-upload.yml | |
| with: | |
| coverage_artifact: ${{ needs.test_n_build.outputs.COVERAGE_ARTIFACT }} | |
| secrets: | |
| CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
| ### STATIC CODE ANALYSIS & LINTING ### | |
| lint: | |
| name: Static Code Analysis | |
| if: ${{ vars.LINT_JOB_ON != 'false' && !contains(github.event.head_commit.message, '_CI_SKIP_') }} | |
| uses: ./.github/workflows/lint.yml | |
| with: | |
| run_policy: '2' | |
| dedicated_branches: 'main, master, dev' | |
| source_code_targets: 'src,tests,scripts' | |
| python_version: '3.11' | |
| pylint_threshold: '8.2' | |
| ### DOCS BUILD/TEST - DOCUMENTATION SITE ### | |
| docs: | |
| name: Build Documentation | |
| uses: boromir674/automated-workflows/.github/workflows/docs-job.yml@develop | |
| with: | |
| build_tool: 'sphinx' | |
| default_trigger: true | |
| override: '${{ vars.OV_DOCS }}' | |
| python_version: '3.11' | |
| upload_distro: true | |
| # uses: boromir674/automated-workflows/.github/workflows/policy_docs.yml@v1.15.0 | |
| # with: | |
| # run_policy: '2' | |
| # python_version: '3.11' | |
| # command: 'REQS_FILE=reqs-docs.txt tox -e pin-deps -- -E docs && tox -e docs -vv -s false' | |
| ### DRAW PYTHON DEPENDENCY GRAPHS ### | |
| code_visualization: | |
| name: Code Visualization of Python Imports as Graphs, in .svg | |
| if: ${{ vars.CODE_VIZ_JOB_ON != 'false' }} | |
| uses: boromir674/automated-workflows/.github/workflows/python_imports.yml@v1.15.0 | |
| with: | |
| run_policy: ${{ vars.CODE_VIZ_JOB_ON == 'true' && '1' || vars.CODE_VIZ_POLICY || '2' }} | |
| branches: 'main, master, dev' | |
| source_code_targets: 'src' | |
| python_version: '3.11' | |
| artifacts_dir: 'dependency-graphs' | |
| ## JOB: Signal for Automated Publishing/Deployment ## | |
| signal_deploy: | |
| needs: test_n_build | |
| if: ${{ startsWith(github.event.ref, 'refs/tags/v') }} | |
| uses: ./.github/workflows/signal-deploy.yml | |
| with: | |
| main_branch: master | |
| release_branch: release | |
| ## JOB: PYPI UPLOAD ## | |
| pypi_publish: | |
| needs: [test_n_build, signal_deploy] | |
| uses: boromir674/automated-workflows/.github/workflows/pypi_env.yml@develop | |
| if: always() && vars.GH_RELEASE_JOB_ON != 'false' && ( | |
| vars.GH_RELEASE_JOB_ON == 'true' || | |
| needs.signal_deploy.outputs.AUTOMATED_DEPLOY == 'true') | |
| with: | |
| should_trigger: ${{ needs.signal_deploy.outputs.AUTOMATED_DEPLOY == 'true' }} | |
| distro_name: software_patterns | |
| distro_version: ${{ needs.test_n_build.outputs.PEP_VERSION }} | |
| pypi_env: '${{ needs.signal_deploy.outputs.ENVIRONMENT_NAME }}' | |
| require_wheel: true | |
| allow_existing: true | |
| secrets: | |
| TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }} | |
| ### JOB: Make a Github Release ### | |
| gh_release: | |
| needs: signal_deploy | |
| if: vars.GH_RELEASE_JOB_ON != 'false' && ( | |
| vars.GH_RELEASE_JOB_ON == 'true' || | |
| needs.signal_deploy.outputs.AUTOMATED_DEPLOY == 'true') | |
| uses: boromir674/automated-workflows/.github/workflows/gh-release.yml@v1.15.0 | |
| name: 'GH Release' | |
| with: | |
| tag: ${{ github.ref_name }} | |
| # artifact: 'BUILD_ARTIFACT' # do not include a tarball/wheel artifact in the GH Release | |
| draft: ${{ needs.signal_deploy.outputs.ENVIRONMENT_NAME == 'TEST_DEPLOYMENT' }} | |
| secrets: | |
| # passing the GH_TOKEN PAT, to render in GH as User, instead of bot | |
| gh_token: ${{ secrets.GH_TOKEN }} |