Skip to content

added github action #11

added github action

added github action #11

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:
test:
name: Execute Functional & Unit Tests
strategy:
matrix:
python-version: [ '3.9' ]
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v3
- 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:
TEST_PLAN_PATH: tests/functional/testdata/plan.yaml
run: |
poetry run python3 -m coverage run -a -m pytest
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: Upload json coverage
uses: actions/upload-artifact@v3
with:
name: coverage.json
path: coverage.json
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
build-image:
name: Build and push container image
runs-on: ubuntu-latest
needs:
- test
if: startsWith(github.ref, 'refs/tags/')
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Build Docker image
run: |
docker build --no-cache -t quay.io/krkn-chaos/krkn-service-hijacking:latest .
docker tag quay.io/krkn-chaos/krkn-service-hijacking:latest quay.io/krkn-chaos/krkn-service-hijacking:${GITHUB_REF##*/}
- name: Login in quay
run: docker login quay.io -u ${QUAY_USER} -p ${QUAY_TOKEN}
env:
QUAY_USER: ${{ secrets.RH_USERNAME }}
QUAY_TOKEN: ${{ secrets.RH_PASSWORD }}
- name: Push Docker image
run: |
docker push quay.io/redhat-chaos/krkn-service-hijacking:latest
docker push quay.io/redhat-chaos/krkn-service-hijacking:${GITHUB_REF##*/}
# 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/*
# build_krkn:
# name: Build Krkn Image
# runs-on: ubuntu-latest
# steps:
# - name: Rebuild krkn
# if: github.ref == 'refs/heads/main' && github.event_name == 'push'
# uses: redhat-chaos/actions/krkn@main
# with:
# QUAY_USER: ${{ secrets.RH_USERNAME }}
# QUAY_TOKEN: ${{ secrets.RH_PASSWORD }}