Edit pytest to meet the requirements #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Python CI | |
on: | |
push: | |
branches: [ master ] | |
pull_request_target: | |
branches: [ master, stable ] | |
concurrency: | |
group: ${{ format('ci-{0}', github.head_ref && format('pr-{0}', github.event.pull_request.number) || github.sha) }} | |
cancel-in-progress: ${{ github.event_name == 'pull_request_target' }} | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
env: | |
min-python-version: "3.10" | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
ref: ${{ github.event.pull_request.head.ref }} | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
- name: Set up Python ${{ env.min-python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ env.min-python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
- name: Lint with flake8 | |
run: flake8 | |
- name: Check black formatting | |
run: black . --check | |
if: success() || failure() | |
- name: Check isort formatting | |
run: isort . --check | |
if: success() || failure() | |
- name: Check mypy formatting | |
run: mypy | |
if: success() || failure() | |
test: | |
permissions: | |
# Gives the action the necessary permissions for publishing new | |
# comments in pull requests. | |
pull-requests: write | |
# Gives the action the necessary permissions for pushing data to the | |
# python-coverage-comment-action branch, and for editing existing | |
# comments (to avoid publishing multiple comments in the same PR) | |
contents: write | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ["3.10"] | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
ref: ${{ github.event.pull_request.head.ref }} | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
- 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 -r requirements.txt | |
- name: Run unittest tests with coverage | |
run: | | |
pytest -n auto --cov=autogpt --cov-report term-missing --cov-branch --cov-report xml --cov-report term | |
env: | |
CI: true | |
PROXY: ${{ secrets.PROXY }} | |
AGENT_MODE: ${{ vars.AGENT_MODE }} | |
AGENT_TYPE: ${{ vars.AGENT_TYPE }} | |
- name: Upload coverage reports to Codecov | |
uses: codecov/codecov-action@v3 | |
- name: Stage new files and commit | |
id: stage_files | |
run: | | |
git add tests | |
git diff --cached --quiet tests && echo "No changes to commit" && exit 0 | |
git config user.email "github-actions@github.com" | |
git config user.name "GitHub Actions" | |
git commit -m "Add new cassettes" | |
TIMESTAMP_COMMIT=$(date +%Y%m%d%H%M%S) # generate a timestamp | |
echo "TIMESTAMP_COMMIT=$TIMESTAMP_COMMIT" >> $GITHUB_ENV | |
- name: Create PR | |
id: create_pr | |
if: ${{ env.TIMESTAMP_COMMIT != null }} | |
uses: peter-evans/create-pull-request@v5 | |
with: | |
commit-message: Update cassettes | |
branch: cassette-diff-PR-${{ github.event.pull_request.number }}-${{ env.TIMESTAMP_COMMIT }} | |
title: "Update cassette-diff-PR${{ github.event.pull_request.number }}-${{ env.TIMESTAMP_COMMIT }}" | |
body: "This PR updates the cassettes. Please merge it." | |
- name: Check PR | |
if: ${{ env.TIMESTAMP_COMMIT != null }} | |
run: | | |
echo "Pull Request Number - ${{ steps.create_pr.outputs.pull-request-number }}" | |
echo "Pull Request URL - ${{ steps.create_pr.outputs.pull-request-url }}" | |
- name: Comment PR URL in the current PR | |
if: ${{ env.TIMESTAMP_COMMIT != null }} | |
uses: thollander/actions-comment-pull-request@v2 | |
with: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
message: | | |
Please click [HERE](${{ steps.create_pr.outputs.pull-request-url }}) and merge this PR to update the cassettes. | |
- name: Fail if new PR created | |
if: ${{ env.TIMESTAMP_COMMIT != null }} | |
run: exit 1 |