mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2025-04-15 00:30:33 +03:00
81 lines
3.5 KiB
YAML
81 lines
3.5 KiB
YAML
# This workflow will:
|
|
#
|
|
# 1. Store some github context in env vars.
|
|
# 2. Only checkout if base and head ref owners are the same.
|
|
# 3. Check if any *.py files are in the diff.
|
|
# 4. Only then install python and perform the annotation with flake8.
|
|
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
|
|
|
|
name: PR-annotate-flake8
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [ develop ]
|
|
|
|
jobs:
|
|
flake8_annotate:
|
|
runs-on: ubuntu-18.04
|
|
|
|
steps:
|
|
##################################################################
|
|
# Check if the base and head repos are the same, if not we won't
|
|
# be able to add annotations.
|
|
##################################################################
|
|
- name: Check head and base repo same
|
|
env:
|
|
BASE_REPO_OWNER: ${{github.event.pull_request.base.repo.owner.login}}
|
|
HEAD_REPO_OWNER: ${{github.event.pull_request.head.repo.owner.login}}
|
|
BASE_REF: ${{github.base_ref}}
|
|
run: |
|
|
# Just to be running something
|
|
env
|
|
##################################################################
|
|
|
|
##################################################################
|
|
# Perform the checkout
|
|
##################################################################
|
|
- name: Checkout
|
|
if: ${{ github.event.pull_request.base.repo.owner.login == github.event.pull_request.head.repo.owner.login }}
|
|
uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0
|
|
##################################################################
|
|
|
|
##################################################################
|
|
# flake8-your-pr 'fails' if no *.py files changed
|
|
# So we check if any were affected and store that in env
|
|
##################################################################
|
|
- name: Check for PY files
|
|
if: ${{ github.event.pull_request.base.repo.owner.login == github.event.pull_request.head.repo.owner.login }}
|
|
run: |
|
|
# Checkout might not have happened.
|
|
if [ ! -d ".git" ]; then exit 0 ; fi
|
|
# Get a list of files ending with ".py", stuff in environment.
|
|
# We don't rely on exit status because Workflows run with
|
|
# "set -e" so any failure in a pipe is total failure.
|
|
PYFILES=$(git diff --name-only "refs/remotes/origin/${BASE_REF}" -- | egrep '.py$' || true)
|
|
# Use magic output to store in env for rest of workflow
|
|
echo "::set-env name=PYFILES::${PYFILES}"
|
|
##################################################################
|
|
|
|
##################################################################
|
|
# Get Python set up
|
|
##################################################################
|
|
- name: Set up Python 3.7
|
|
if: ${{ env.PYFILES != '' }}
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: 3.7
|
|
##################################################################
|
|
|
|
##################################################################
|
|
# Perform the annotation
|
|
##################################################################
|
|
- name: Annotate with Flake8
|
|
# Only if at least one *.py file was affected
|
|
if: ${{ env.PYFILES != '' }}
|
|
uses: "tayfun/flake8-your-pr@master"
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
##################################################################
|