Skip to content

Commit

Permalink
final workflow for CI and CD
Browse files Browse the repository at this point in the history
  • Loading branch information
NiklasTiede committed Apr 11, 2021
1 parent 9bfd957 commit 3a62a8f
Show file tree
Hide file tree
Showing 2 changed files with 94 additions and 146 deletions.
94 changes: 45 additions & 49 deletions .github/workflows/continuous_integration.yaml
Original file line number Diff line number Diff line change
@@ -1,49 +1,45 @@
# name: Continuous Integration

# on: [push, pull_request]

# jobs:
# test:
# runs-on: ubuntu-latest
# strategy:
# matrix:
# python-version: [3.9]
# steps:
# - uses: actions/checkout@v2

# - name: Set up Python ${{ matrix.python-version }}
# uses: actions/setup-python@v2
# with:
# python-version: ${{ matrix.python-version }}

# - name: Install dependencies
# run: |
# python -m pip install --upgrade pip
# pip install pytest pytest-cov requests
# if [ -f requirements-prod.txt ]; then pip install -r requirements-prod.txt; fi

# - name: Generate coverage report
# run: |
# pytest --cov=app --cov-report=xml

# - name: Upload coverage to Codecov
# uses: codecov/codecov-action@v1
# with:
# files: ./coverage.xml
# directory: ./coverage/reports/
# name: codecov-umbrella
# fail_ci_if_error: true
# path_to_write_report: ./coverage/codecov_report.txt
# verbose: true


# build-dockerimage:
# runs-on: ubuntu-latest
# strategy:
# matrix:
# python-version: [3.9]
# steps:
# - uses: actions/checkout@v2
# - name: build dockerimage
# run: |
# docker build -t gh-trending-api .
name: Continuous Integration

on: [push, pull_request]

jobs:

test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.9]
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest pytest-cov requests
if [ -f requirements-prod.txt ]; then pip install -r requirements-prod.txt; fi
- name: Generate coverage report
run: |
pytest --cov=app --cov-report=xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
with:
files: ./coverage.xml
directory: ./coverage/reports/
name: codecov-umbrella
fail_ci_if_error: true
path_to_write_report: ./coverage/codecov_report.txt
verbose: true

build-dockerimage:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.9]
steps:
- uses: actions/checkout@v2
- name: build dockerimage
run: |
docker build -t gh-trending-api .
146 changes: 49 additions & 97 deletions .github/workflows/release_and_deploy.yaml
Original file line number Diff line number Diff line change
@@ -1,115 +1,67 @@
name: GH Release, Publishing to Docker and Deployment to Heroku

on: [push, pull_request]

# on:
# push:
# tags:
# - 'v*.*.*'

on:
push:
tags:
- 'v*.*.*'

jobs:

# test:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v2

# - name: Set up Python 3.9
# uses: actions/setup-python@v2
# with:
# python-version: 3.9

# - name: Install dependencies
# run: |
# python -m pip install --upgrade pip
# pip install pytest pytest-cov requests
# if [ -f requirements-prod.txt ]; then pip install -r requirements-prod.txt; fi

# - name: Generate coverage report
# run: |
# pytest --cov=app --cov-report=xml

# - name: Upload coverage to Codecov
# uses: codecov/codecov-action@v1
# with:
# files: ./coverage.xml
# directory: ./coverage/reports/
# name: codecov-umbrella
# fail_ci_if_error: true
# path_to_write_report: ./coverage/codecov_report.txt
# verbose: true


# build-dockerimage:
# runs-on: ubuntu-latest

# steps:
# - uses: actions/checkout@v2
# - name: build dockerimage
# run: |
# docker build -t gh-trending-api .



# docker-publish:
# needs: [test, build-dockerimage]
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@master
# - name: Publish to Registry
# uses: elgohr/Publish-Docker-Github-Action@master
# with:
# name: niklastiede/github-trending-api
# username: ${{ secrets.DOCKER_USERNAME }}
# password: ${{ secrets.DOCKER_PASSWORD }}
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.9
uses: actions/setup-python@v2
with:
python-version: 3.9
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest pytest-cov requests
if [ -f requirements-prod.txt ]; then pip install -r requirements-prod.txt; fi
- name: Generate coverage report
run: |
pytest --cov=app --cov-report=xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
with:
files: ./coverage.xml
directory: ./coverage/reports/
name: codecov-umbrella
fail_ci_if_error: true
path_to_write_report: ./coverage/codecov_report.txt
verbose: true

build-dockerimage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: build dockerimage
run: |
docker build -t gh-trending-api .
docker-publish:
needs: [test, build-dockerimage]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Publish to Registry
uses: elgohr/Publish-Docker-Github-Action@master
with:
name: niklastiede/github-trending-api
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

heroku-deploy:

needs: [test, build-dockerimage]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master

- name: Deploy on Heroku
uses: akhileshns/[email protected]
with:
heroku_api_key: ${{secrets.HEROKU_API_KEY}}
heroku_app_name: "gh-trending-api"
heroku_email: "[email protected]"
# usedocker: true









# release-and-deploy:
# # needs: [test, build-dockerimage]

# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v2

# # # - name: Release
# # # uses: softprops/action-gh-release@v1
# # # env:
# # # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

# - name: Publish to Registry
# uses: elgohr/Publish-Docker-Github-Action@master
# with:
# name: niklastiede/github-trending-api
# username: ${{ secrets.DOCKER_USERNAME }}
# password: ${{ secrets.DOCKER_PASSWORD }}

# - name: Deploy on Heroku
# - uses: akhileshns/[email protected]
# with:
# heroku_api_key: ${{secrets.HEROKU_API_KEY}}
# heroku_app_name: "gh-trending-api"
# heroku_email: "[email protected]"
# usedocker: true

0 comments on commit 3a62a8f

Please sign in to comment.