generated from aicoe-aiops/project-template
-
Notifications
You must be signed in to change notification settings - Fork 40
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Matthew Watkins <[email protected]>
- Loading branch information
1 parent
48d1d18
commit 2f07266
Showing
7 changed files
with
552 additions
and
0 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 |
---|---|---|
@@ -0,0 +1,56 @@ | ||
--- | ||
name: '🧪 Test builds (matrix)' | ||
|
||
# yamllint disable-line rule:truthy | ||
on: | ||
workflow_dispatch: | ||
pull_request: | ||
types: [opened, reopened, edited, synchronize] | ||
|
||
jobs: | ||
pre-release: | ||
# Don't run if pull request is NOT merged | ||
if: github.event.pull_request.merged == true | ||
runs-on: 'ubuntu-latest' | ||
continue-on-error: true | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
python-version: ['3.9', '3.10', '3.11'] | ||
steps: | ||
- name: 'Populate environment variables' | ||
id: setenv | ||
run: | | ||
echo "Action triggered by user: ${GITHUB_TRIGGERING_ACTOR}" | ||
set -x | ||
datetime=$(date +'%Y%m%d%H%M') | ||
export datetime | ||
echo "datetime=${datetime}" >> "$GITHUB_OUTPUT" | ||
vernum="${{ matrix.python-version }}.${datetime}" | ||
echo "vernum=${vernum}" >> "$GITHUB_OUTPUT" | ||
- name: 'Checkout repository' | ||
uses: actions/checkout@v4 | ||
|
||
- name: 'Set up Python ${{ matrix.python-version }}' | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
- name: 'Install dependencies' | ||
run: | | ||
python -m pip install --upgrade pip | ||
pip install tox tox-gh-actions | ||
- name: 'Tag for test release' | ||
# Delete all local tags, then create a synthetic tag for testing | ||
# Use the date/time to avoid conflicts uploading to Test PyPI | ||
run: | | ||
scripts/dev-versioning.sh "${{ steps.setenv.outputs.vernum }}" | ||
git tag | xargs -L 1 | xargs git tag --delete | ||
git tag "v${{ steps.setenv.outputs.vernum }}" | ||
git checkout "tags/v${{ steps.setenv.outputs.vernum }}" | ||
grep version pyproject.toml | ||
- name: 'Build with TOX' | ||
run: | | ||
tox -e build |
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 |
---|---|---|
@@ -0,0 +1,40 @@ | ||
--- | ||
name: '⛔️ Update dependencies' | ||
|
||
# yamllint disable-line rule:truthy | ||
on: | ||
workflow_dispatch: | ||
schedule: | ||
- cron: '0 0 * * MON' | ||
|
||
jobs: | ||
update-dependencies: | ||
name: 'Update Python modules' | ||
runs-on: ubuntu-latest | ||
permissions: | ||
# IMPORTANT: mandatory to raise the PR | ||
id-token: write | ||
pull-requests: write | ||
repository-projects: write | ||
contents: write | ||
|
||
env: | ||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: 'Setup PDM for build commands' | ||
uses: pdm-project/setup-pdm@v3 | ||
with: | ||
version: 2.10.0 | ||
|
||
- name: Update dependencies | ||
uses: pdm-project/update-deps-action@main | ||
with: | ||
token: ${{ secrets.GH_TOKEN }} | ||
commit-message: 'Chore: Update dependencies and pdm.lock' | ||
pr-title: 'Update Python module dependencies' | ||
update-strategy: eager | ||
# Whether to install PDM plugins before update | ||
install-plugins: 'false' |
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 |
---|---|---|
@@ -0,0 +1,50 @@ | ||
--- | ||
name: '🗒️ Build documentation' | ||
|
||
# yamllint disable-line rule:truthy | ||
on: | ||
workflow_dispatch: | ||
pull_request: | ||
types: [closed] | ||
|
||
jobs: | ||
build_and_deploy: | ||
# Don't run if pull request is NOT merged | ||
if: github.event.pull_request.merged == true | ||
name: 'Rebuild documentation' | ||
runs-on: ubuntu-latest | ||
continue-on-error: true | ||
strategy: | ||
matrix: | ||
python-version: ['3.11'] | ||
steps: | ||
- name: 'Checkout repository' | ||
uses: actions/checkout@v4 | ||
|
||
- name: 'Setup PDM for build commands' | ||
uses: pdm-project/setup-pdm@v3 | ||
|
||
- name: 'Set up Python ${{ matrix.python-version }}' | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
|
||
- name: 'Install dependencies' | ||
run: | | ||
python -m pip install --upgrade pip | ||
pdm export -o requirements.txt | ||
if [ -f docs/requirements.txt ]; then | ||
pip install -r docs/requirements.txt; fi | ||
- name: 'Build documentation: (tox/sphinx)' | ||
run: | | ||
tox -e docs | ||
- name: 'Publish documentation' | ||
if: success() | ||
uses: peaceiris/actions-gh-pages@v3 | ||
with: | ||
publish_branch: gh-pages | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
publish_dir: docs/_build/html/ | ||
keep_files: true |
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 |
---|---|---|
@@ -0,0 +1,167 @@ | ||
--- | ||
name: '🐍📦 Production build and release' | ||
|
||
# GitHub/PyPI trusted publisher documentation: | ||
# https://packaging.python.org/en/latest/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/ | ||
|
||
# yamllint disable-line rule:truthy | ||
on: | ||
# workflow_dispatch: | ||
push: | ||
# Only invoked on release tag pushes | ||
tags: | ||
- v*.*.* | ||
|
||
env: | ||
python-version: '3.10' | ||
|
||
### BUILD ### | ||
|
||
jobs: | ||
build: | ||
name: '🐍 Build packages' | ||
runs-on: ubuntu-latest | ||
permissions: | ||
# IMPORTANT: mandatory for Sigstore | ||
id-token: write | ||
steps: | ||
### BUILDING ### | ||
|
||
- name: 'Checkout repository' | ||
uses: actions/checkout@v4 | ||
|
||
- name: 'Setup PDM for build commands' | ||
uses: pdm-project/setup-pdm@v3 | ||
with: | ||
version: 2.10.0 | ||
|
||
- name: 'Setup Python 3.10' | ||
uses: actions/[email protected] | ||
with: | ||
python-version: ${{ env.python-version }} | ||
|
||
- name: 'Update version from tags for production release' | ||
run: | | ||
echo "Github versioning: ${{ github.ref_name }}" | ||
scripts/release-versioning.sh | ||
- name: 'Build with PDM backend' | ||
run: | | ||
pdm build | ||
### SIGNING ### | ||
|
||
- name: 'Sign packages with Sigstore' | ||
uses: sigstore/[email protected] | ||
with: | ||
inputs: >- | ||
./dist/*.tar.gz | ||
./dist/*.whl | ||
- name: Store the distribution packages | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: ${{ github.ref_name }} | ||
path: dist/ | ||
|
||
### PUBLISH GITHUB ### | ||
|
||
github: | ||
name: '📦 Publish to GitHub' | ||
# Only publish on tag pushes | ||
if: startsWith(github.ref, 'refs/tags/') | ||
needs: | ||
- build | ||
runs-on: ubuntu-latest | ||
permissions: | ||
# IMPORTANT: mandatory to publish artefacts | ||
contents: write | ||
steps: | ||
- name: '⬇ Download build artefacts' | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: ${{ github.ref_name }} | ||
path: dist/ | ||
|
||
- name: '📦 Publish release to GitHub' | ||
uses: ModeSevenIndustrialSolutions/action-automatic-releases@latest | ||
with: | ||
# Valid inputs are: | ||
# repo_token, automatic_release_tag, draft, prerelease, title, files | ||
repo_token: ${{ secrets.GITHUB_TOKEN }} | ||
prerelease: false | ||
automatic_release_tag: ${{ github.ref_name }} | ||
title: ${{ github.ref_name }} | ||
files: | | ||
dist/*.tar.gz | ||
dist/*.whl | ||
### PUBLISH PYPI TEST ### | ||
|
||
testpypi: | ||
name: '📦 Publish to PyPi Test' | ||
# Only publish on tag pushes | ||
if: startsWith(github.ref, 'refs/tags/') | ||
needs: | ||
- build | ||
runs-on: ubuntu-latest | ||
environment: | ||
name: testpypi | ||
permissions: | ||
# IMPORTANT: mandatory for trusted publishing | ||
id-token: write | ||
steps: | ||
- name: '⬇ Download build artefacts' | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: ${{ github.ref_name }} | ||
path: dist/ | ||
|
||
- name: 'Remove files unsupported by PyPi' | ||
run: | | ||
if [ -f dist/buildvars.txt ]; then | ||
rm dist/buildvars.txt | ||
fi | ||
rm dist/*.crt dist/*.sig* | ||
- name: Publish distribution to Test PyPI | ||
uses: pypa/gh-action-pypi-publish@release/v1 | ||
with: | ||
repository-url: https://test.pypi.org/legacy/ | ||
verbose: true | ||
|
||
### PUBLISH PYPI ### | ||
|
||
pypi: | ||
name: '📦 Publish to PyPi' | ||
# Only publish on tag pushes | ||
if: startsWith(github.ref, 'refs/tags/') | ||
needs: | ||
- testpypi | ||
runs-on: ubuntu-latest | ||
environment: | ||
name: pypi | ||
permissions: | ||
# IMPORTANT: mandatory for trusted publishing | ||
id-token: write | ||
steps: | ||
- name: '⬇ Download build artefacts' | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: ${{ github.ref_name }} | ||
path: dist/ | ||
|
||
- name: 'Remove files unsupported by PyPi' | ||
run: | | ||
if [ -f dist/buildvars.txt ]; then | ||
rm dist/buildvars.txt | ||
fi | ||
rm dist/*.crt dist/*.sig* | ||
- name: 'Setup PDM for build commands' | ||
uses: pdm-project/setup-pdm@v3 | ||
|
||
- name: 'Publish release to PyPI' | ||
uses: pypa/gh-action-pypi-publish@release/v1 | ||
with: | ||
verbose: true |
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 |
---|---|---|
@@ -0,0 +1,49 @@ | ||
--- | ||
# This workflow will install Python dependencies | ||
# run tests and lint with a variety of Python versions | ||
# For more information see: | ||
# https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | ||
|
||
name: '⛔️ Security auditing' | ||
|
||
# yamllint disable-line rule:truthy | ||
on: | ||
workflow_dispatch: | ||
pull_request: | ||
types: [opened, reopened, edited, synchronize] | ||
|
||
jobs: | ||
build: | ||
name: 'Audit Python dependencies' | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
python-version: ['3.9', '3.10', '3.11'] | ||
steps: | ||
- name: 'Checkout repository' | ||
uses: actions/checkout@v4 | ||
|
||
- name: 'Setup PDM for build commands' | ||
uses: pdm-project/setup-pdm@v3 | ||
with: | ||
version: 2.10.0 | ||
|
||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
|
||
- name: 'Install dependencies' | ||
run: | | ||
pip install --upgrade pip | ||
pdm lock | ||
pdm export -o requirements.txt | ||
python -m pip install -r requirements.txt | ||
python -m pip install . | ||
- name: 'Run: pip-audit' | ||
uses: pypa/[email protected] | ||
with: | ||
ignore-vulns: | | ||
PYSEC-2023-163 |
Oops, something went wrong.