Skip to content

Bump boto3 from 1.28.55 to 1.28.62 #435

Bump boto3 from 1.28.55 to 1.28.62

Bump boto3 from 1.28.55 to 1.28.62 #435

Workflow file for this run

name: Build
on:
push:
branches:
- main
tags:
- '*'
pull_request:
permissions:
# https://github.community/t/permissions-nesecary-to-comment-on-a-pr/179047/5
pull-requests: write
contents: write
jobs:
build:
name: Build & Test
strategy:
matrix:
#python-version: [ '3.9', '3.10', 'pypy3.9' ]
python-version: [ '3.9' ]
runs-on: ubuntu-latest
steps:
- name: Create multi-node KinD cluster
uses: redhat-chaos/actions/kind@main
- name: Check out code
uses: actions/checkout@v3
- name: Update version number
if: startsWith(github.ref, 'refs/tags/')
run: |
sed -i -e "s/0.0.0/${GITHUB_REF##*/}/" pyproject.toml
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Check isort, black, and flake8
run: |
pip install black flake8 isort
isort --profile black .
black --line-length 79 .
flake8 .
curl -sSL https://install.python-poetry.org | python3 -
- name: Install project dependencies
run: poetry install --no-interaction
- name: Run tests with coverage
env:
API_USER: ${{ secrets.API_USER }}
API_PASSWORD: ${{ secrets.API_PASSWORD }}
BUCKET_NAME: ${{ secrets.BUCKET_NAME }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
run: |
export TEST_WORKDIR=`pwd`/`date +%s`
mkdir $TEST_WORKDIR
poetry run python3 -m coverage run -a -m unittest discover -v src/krkn_lib/tests/
poetry run python3 -m coverage html
poetry run python3 -m coverage json
- name: Publish coverage report to job summary
if: ${{ matrix.python-version == '3.9'}}
run: |
poetry run html2text --ignore-images --ignore-links -b 0 htmlcov/index.html >> $GITHUB_STEP_SUMMARY
- name: Build
run: poetry build
- name: Upload json coverage
uses: actions/upload-artifact@v3
with:
name: coverage.json
path: coverage.json
if-no-files-found: error
- name: Upload dist artifact
uses: actions/upload-artifact@v3
with:
name: dist
path: dist
if-no-files-found: error
- name: Upload coverage HTML artifact
uses: actions/upload-artifact@v3
with:
name: coverage
path: htmlcov
if-no-files-found: error
doc:
name: Generate and Publish Docs
runs-on: ubuntu-latest
needs:
- build
if: startsWith(github.ref, 'refs/tags/')
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Check out doc repo
uses: actions/checkout@master
with:
repository: redhat-chaos/krkn-lib-docs
path: krkn-lib-docs
ssh-key: ${{ secrets.LIB_REPO_DOC_KEY }}
- name: Download json coverage
uses: actions/download-artifact@v3
with:
name: coverage.json
- name: Update version number
if: startsWith(github.ref, 'refs/tags/')
run: |
sed -i -e "s/0.0.0/${GITHUB_REF##*/}/" pyproject.toml
sed -i -e "s/0.0.0/${GITHUB_REF##*/}/" ./docs/conf.py
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Install Poetry
run: |
curl -sSL https://install.python-poetry.org | python3 -
- name: Install project dependencies
run: poetry install --no-interaction
- name: Generate documentation
run: |
poetry run sphinx-apidoc -o docs/ -f -a -e src/krkn_lib --doc-project "Krkn Foundation Library"
poetry run make -C docs html
- name: Copy documentation on GitHub Page Repo
env:
COLOR: red
run: |
find krkn-lib-docs/ -type f ! -name 'index.html' -type d ! -name '.git' -delete
cp -R docs/build/html/* krkn-lib-docs
# generate coverage badge on previously calculated total coverage
# and copy in the docs page
export TOTAL=$(python -c "import json;print(json.load(open('coverage.json'))['totals']['percent_covered_display'])")
[[ $TOTAL > 70 ]] && COLOR=green
echo "TOTAL: $TOTAL"
echo "COLOR: $COLOR"
curl "https://img.shields.io/badge/coverage-$TOTAL%25-$COLOR" > ./krkn-lib-docs/coverage_badge.svg
- name: Push updated HTML documentation
run: |
cd krkn-lib-docs
git add .
git config user.name "redhat-chaos"
git config user.email "<>"
git commit -m "[KRKN LIB] API documentation ${GITHUB_REF##*/}"
git push
publish:
name: Publish Library on PyPi
runs-on: ubuntu-latest
needs:
- build
if: startsWith(github.ref, 'refs/tags/')
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Download artifacts
uses: actions/download-artifact@v3
with:
name: dist
path: dist
- name: Install twine
run: pip install -U twine
- name: Publish
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{secrets.PYPI_TOKEN}}
TWINE_NON_INTERACTIVE: true
run: twine upload dist/*