Skip to content

The rstrip() method removes slashes at the end of the path string instead of slicing #2225

The rstrip() method removes slashes at the end of the path string instead of slicing

The rstrip() method removes slashes at the end of the path string instead of slicing #2225

Workflow file for this run

name: GH Actions
on:
pull_request:
workflow_dispatch:
jobs:
static-checks:
name: Static checks
runs-on: ubuntu-20.04
container:
image: quay.io/avocado-framework/avocado-ci-fedora-38
steps:
- run: echo "Job triggered by a ${{ github.event_name }} event on branch is ${{ github.ref }} in repository is ${{ github.repository }}, runner on ${{ runner.os }}"
- name: Check out repository code
uses: actions/checkout@v3
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: Allow git to operate on directory checked out by GH Actions
run: git config --global --add safe.directory `pwd`
- name: Installing Avocado development dependencies
run: make requirements-dev
- name: Installing Avocado in develop mode
run: python3 setup.py develop --user
- name: Run static checks
env:
COMMIT_COUNT: ${{ github.event.pull_request.commits }}
run: python3 setup.py test --select=static-checks
- name: Archive failed tests logs
if: failure()
uses: actions/upload-artifact@v3
with:
name: static-checks-logs
path: /home/runner/avocado/job-results/
retention-days: 1
- run: echo "🥑 This job's status is ${{ job.status }}."
smokecheck-linux:
name: Smokecheck on Linux with Python ${{ matrix.python-version }}
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: [3.7, 3.8, 3.9, 3.10.0, 3.11]
fail-fast: false
steps:
- run: echo "Job triggered by a ${{ github.event_name }} event on branch is ${{ github.ref }} in repository is ${{ github.repository }}, runner on ${{ runner.os }}"
- name: Check out repository code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Avocado smokecheck
run: make smokecheck
check-linux:
name: Linux with Python ${{ matrix.python-version }}
runs-on: ubuntu-20.04
needs: smokecheck-linux
strategy:
matrix:
python-version: [3.7, 3.8, 3.9, 3.10.0, 3.11]
fail-fast: false
steps:
- run: echo "Job triggered by a ${{ github.event_name }} event on branch is ${{ github.ref }} in repository is ${{ github.repository }}, runner on ${{ runner.os }}"
- name: Check out repository code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Display Python version
run: python -V --version
- name: Install dependencies
run: pip install -r requirements-dev.txt
- name: Installing Avocado in develop mode
run: python3 setup.py develop --user
- name: Avocado version
run: avocado --version
- name: Unittests and fast functional tests
run: python3 setup.py test --skip=static-checks
- name: Archive failed tests logs
if: failure()
uses: actions/upload-artifact@v3
with:
name: linux-logs-${{ matrix.python-version }}
path: /home/runner/avocado/job-results/
retention-days: 1
- run: echo "🥑 This job's status is ${{ job.status }}."
code-coverage:
name: Code Coverage
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: [3.11]
env:
CC_TEST_REPORTER_ID: "387887b88a76f31c2c376219fc749689ea5975c8fe7fcd9609f1dcc139e053a6"
steps:
- run: echo "Job triggered by a ${{ github.event_name }} event on branch is ${{ github.ref }} in repository is ${{ github.repository }}, runner on ${{ runner.os }}"
- name: Check out repository code
uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install
run: |
pip install -r requirements-dev.txt
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
chmod +x ./cc-test-reporter
- name: Run pre script
run: ./cc-test-reporter before-build
- name: Run script
run: make develop && ./selftests/run_coverage
- name: Run post script
run: ./cc-test-reporter after-build
- run: echo "🥑 This job's status is ${{ job.status }}."
# macOS check on latest Python
check-macos:
name: macOS with Python ${{ matrix.python-version }}
runs-on: macos-12
strategy:
matrix:
python-version: [3.11.1]
steps:
- run: echo "Job triggered by a ${{ github.event_name }} event on branch is ${{ github.ref }} in repository is ${{ github.repository }}, runner on ${{ runner.os }}"
- name: Check out repository code
uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Display Python version
run: python -V --version
- name: Install avocado
run: |
python3 -m pip install -r requirements-dev.txt
python setup.py develop --user
- name: Show avocado help
run: python -m avocado --help
- name: Example test
run: python -m avocado run examples/tests/passtest.py
- name: List test
run: python -m avocado --verbose list selftests/unit/* selftests/functional/* selftests/*sh
- name: Run a subset of avocado's selftests
run: PATH=~/Library/Python/3.11/bin:$PATH ./selftests/check.py --skip=static-checks
- run: echo "🥑 This job's status is ${{ job.status }}."
# Windows checks on latest Python
smokecheck-windows:
name: Windows with Python ${{ matrix.python-version }}
runs-on: windows-2019
strategy:
matrix:
python-version: [3.9, 3.10.0, 3.11]
steps:
- run: echo "Job triggered by a ${{ github.event_name }} event on branch is ${{ github.ref }} in repository is ${{ github.repository }}, runner on ${{ runner.os }}"
- name: Check out repository code
uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Display Python version
run: python -V --version
- name: Install avocado
run: python setup.py develop --user
- name: Show avocado help
run: python -m avocado --help
- name: Example test
run: python -m avocado run examples\tests\passtest.py
- run: echo "🥑 This job's status is ${{ job.status }}."
# Checks that Python packages builds succeeds
package-build:
name: Build Package (wheel/tarball) for Python ${{ matrix.python-version }}
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: [3.7, 3.8, 3.9, 3.10.0, 3.11]
fail-fast: false
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Build tarballs and wheels
run: make -f Makefile.gh build-wheel
- name: Save tarballs and wheels as artifacts
uses: actions/upload-artifact@v3
with:
name: tarballs_and_wheels-${{ matrix.python-version }}
path: ${{github.workspace}}/PYPI_UPLOAD/
retention-days: 1
- run: echo "🥑 This job's status is ${{ job.status }}."
egg-build:
name: Build Egg for Python ${{ matrix.python-version }}
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: [3.7, 3.8, 3.9, 3.10.0, 3.11]
fail-fast: false
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Build eggs
run: make -f Makefile.gh build-egg
- name: Save eggs as artifacts
uses: actions/upload-artifact@v3
with:
name: eggs-${{ matrix.python-version }}
path: ${{github.workspace}}/EGG_UPLOAD/
retention-days: 1
- run: echo "🥑 This job's status is ${{ job.status }}."
experimental-checks:
name: Experimental checks
runs-on: ubuntu-20.04
steps:
- run: echo "Job triggered by a ${{ github.event_name }} event on branch is ${{ github.ref }} in repository is ${{ github.repository }}, runner on ${{ runner.os }}"
- name: Check out repository code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Run Codespell Check
run: make -f Makefile.gh codespell
- name: Run bandit check
run: make -f Makefile.gh bandit
continue-on-error: True
- name: Save bandit output as artifacts
uses: actions/upload-artifact@v3
with:
name: bandit-results
path: /home/runner/work/avocado/avocado/bandit-output.txt
retention-days: 1
- run: echo "🥑 This job's status is ${{ job.status }}."
version_task:
name: Version task (${{ matrix.container }})
runs-on: ubuntu-20.04
strategy:
matrix:
container: ["fedora:37",
"fedora:38",
"registry.access.redhat.com/ubi8/ubi:8.8",
"registry.access.redhat.com/ubi9/ubi:9.2",
"debian:10.10",
"debian:11.0",
"ubuntu:21.10",
"ubuntu:20.04"]
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Install and run avocado --version
run: |
if ! command -v dnf &> /dev/null
then
python3 -c 'import setuptools' || dnf -y install python3 python3-setuptools
else
python3 --version || (apt update && apt -y install python3 python3-setuptools ca-certificates)
fi
python3 setup.py develop --user
python3 -m avocado --version
egg_task:
name: Egg task (${{ matrix.container }})
runs-on: ubuntu-20.04
strategy:
matrix:
container: ["fedora:37",
"fedora:38",
"registry.access.redhat.com/ubi8/ubi:8.8",
"registry.access.redhat.com/ubi9/ubi:9.2",
"debian:10.10",
"debian:11.0",
"ubuntu:21.10",
"ubuntu:20.04"]
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Test running avocado from eggs
run: |
if ! command -v dnf &> /dev/null
then
python3 -c 'import setuptools' || dnf -y install python3 python3-setuptools
else
python3 --version || (apt update && apt -y install python3 python3-setuptools)
fi
python3 setup.py bdist_egg
mv dist/avocado_framework-*egg /tmp
python3 setup.py clean --all
python3 -c 'import sys; import glob; sys.path.insert(0, glob.glob("/tmp/avocado_framework-*.egg")[0]); from avocado.core.main import main; sys.exit(main())' run /bin/true
cd /tmp
python3 -c 'import sys; from pkg_resources import require; require("avocado-framework"); from avocado.core.main import main; sys.exit(main())' run /bin/true
podman_egg_task:
name: Podman Egg task
runs-on: ubuntu-22.04
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Test running avocado from eggs under Podman spawner
run: |
apt update && apt -y install python3 python3-setuptools
python3 setup.py bdist_egg
mv dist/avocado_framework-*egg /tmp/avocado_framework.egg
python3 setup.py clean --all
python3 -c 'import sys; sys.path.insert(0, "/tmp/avocado_framework.egg"); from avocado.core.main import main; sys.exit(main())' run --spawner=podman --spawner-podman-image=fedora:36 --spawner-podman-avocado-egg=file:///tmp/avocado_framework.egg -- /bin/true
podman_external_runner_task:
name: Podman spawner with 3rd party runner plugin
runs-on: ubuntu-22.04
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Test running avocado from released eggs under Podman spawner with 3rd party plugins
run: |
apt update && apt -y install python3 python3-setuptools
python3 setup.py develop --user
cd examples/plugins/tests/magic
python3 setup.py develop --user
cd ../../../../
python3 -m avocado -V list -- pass fail | grep "magic: 2"
podman pull quay.io/avocado-framework/avocado-ci-magic
python3 -m avocado run --spawner=podman --spawner-podman-image=quay.io/avocado-framework/avocado-ci-magic -- pass
tail -n1 ~/avocado/job-results/latest/results.tap | grep "ok 1 pass"
python3 -m avocado run --spawner=podman --spawner-podman-image=quay.io/avocado-framework/avocado-ci-magic -- fail || true
tail -n1 ~/avocado/job-results/latest/results.tap | grep "not ok 1 fail"
fedora_develop_install_uninstall_task:
name: Fedora develop install/uninstall task
runs-on: ubuntu-latest
container:
image: fedora:36
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Test avocado install/uninstall
run: |
python3 -c 'import setuptools' || dnf -y install python3 python3-setuptools
python3 setup.py develop --user
test `python3 -m avocado plugins | grep ^html | wc -l` -eq "3"
test `python3 -m avocado plugins | grep ^robot | wc -l` -eq "2"
python3 setup.py develop --user --uninstall
python3 setup.py clean --all
python3 setup.py develop --user --skip-optional-plugins
python3 -m avocado --version
test `python3 -m avocado plugins | grep ^html | wc -l` -eq "0"
test `python3 -m avocado plugins | grep ^robot | wc -l` -eq "0"
fedora_selftests_task:
name: Fedora selftests
runs-on: ubuntu-latest
container:
image: quay.io/avocado-framework/avocado-ci-fedora-36
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Run unittests and functional tests
run: |
make develop
PATH=$HOME/.local/bin:$PATH LANG=en_US.UTF-8 AVOCADO_CHECK_LEVEL=0 python3 selftests/check.py --skip static-checks