diff --git a/.github/workflows/continuous_integration.yaml b/.github/workflows/continuous_integration.yaml index 23ff1be..b6121b2 100644 --- a/.github/workflows/continuous_integration.yaml +++ b/.github/workflows/continuous_integration.yaml @@ -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 . diff --git a/.github/workflows/release_and_deploy.yaml b/.github/workflows/release_and_deploy.yaml index ca80dfe..69e3ac3 100644 --- a/.github/workflows/release_and_deploy.yaml +++ b/.github/workflows/release_and_deploy.yaml @@ -1,76 +1,63 @@ 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/heroku-deploy@v3.12.12 with: @@ -78,38 +65,3 @@ jobs: heroku_app_name: "gh-trending-api" heroku_email: "niklastiede2@gmail.com" # 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/heroku-deploy@v3.12.12 - # with: - # heroku_api_key: ${{secrets.HEROKU_API_KEY}} - # heroku_app_name: "gh-trending-api" - # heroku_email: "niklastiede2@gmail.com" - # usedocker: true