Skip to content

fix: Ignore too-many-positional-arguments error from pylint in test_c… #215

fix: Ignore too-many-positional-arguments error from pylint in test_c…

fix: Ignore too-many-positional-arguments error from pylint in test_c… #215

name: "Test and release"
on:
pull_request:
paths:
- '.github/workflows/test_and_release.yml'
- 'build-tools/*'
- 'etc/slurm-mail/templates/html'
- 'etc/slurm-mail/templates/text'
- 'setup.py'
- 'src/slurmmail/*.py'
- 'supported_slurm_versions.json'
- 'tests/integration/*.py'
- 'tests/integration/run.sh'
- 'tests/integration/tests.yml'
- 'tests/unit/*.py'
push:
paths:
- '.github/workflows/test_and_release.yml'
- 'build-tools/*'
- 'etc/slurm-mail/templates/html'
- 'etc/slurm-mail/templates/text'
- 'setup.py'
- 'src/slurmmail/*.py'
- 'supported_slurm_versions.json'
- 'tests/integration/*.py'
- 'tests/integration/run.sh'
- 'tests/integration/tests.yml'
- 'tests/unit/*.py'
workflow_dispatch:
jobs:
generate_python_matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v4
- id: set-matrix
name: set-matrix
run: |
matrix=$(cat ./supported_python_versions.json)
echo "matrix=${matrix}" >> $GITHUB_OUTPUT
unit_tests:
needs: generate_python_matrix
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: ${{fromJson(needs.generate_python_matrix.outputs.matrix)}}
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest
pip install pytest-cov
pip install typing-extensions
- name: Run unit tests
env:
COVERAGE_FILE: ".coverage.${{ matrix.python-version }}"
run: |
pytest -v
- name: Store coverage file
uses: actions/upload-artifact@v4
with:
name: coverage-${{ matrix.python-version }}
path: .coverage.${{ matrix.python-version }}
coverage:
name: Coverage
runs-on: ubuntu-latest
needs: unit_tests
if: ${{ github.event_name != 'workflow_dispatch' }}
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
id: download
with:
pattern: coverage-*
merge-multiple: true
- name: Coverage comment
id: coverage_comment
uses: py-cov-action/python-coverage-comment-action@v3
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
MERGE_COVERAGE_FILES: true
- name: Store Pull Request comment to be posted
uses: actions/upload-artifact@v4
if: steps.coverage_comment.outputs.COMMENT_FILE_WRITTEN == 'true'
with:
name: python-coverage-comment-action
path: python-coverage-comment-action.txt
build_tar:
needs: unit_tests
permissions:
contents: read
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Create tar
id: create_tar
run: |
echo "TAR_PATH=$(
build-tools/create-tar.sh
)" >> $GITHUB_ENV
- name: Get tar file name
id: tar_name
run: |
echo "TAR_NAME=$(
basename ${{ env.TAR_PATH }}
)" >> $GITHUB_ENV
- name: Move tar file
run: mv -v ${{ env.TAR_PATH }} ./
- name: Create md5sum for tar file
run: md5sum ${{ env.TAR_NAME }} | awk '{ print $1}' > ${{ env.TAR_NAME }}.md5sum
- name: Store tar file
uses: actions/upload-artifact@v4
with:
name: tar_file
path: ${{ env.TAR_NAME }}
if-no-files-found: error
retention-days: 5
- name: Store tar file md5sum
uses: actions/upload-artifact@v4
with:
name: tar_file_md5sum
path: ${{ env.TAR_NAME }}.md5sum
if-no-files-found: error
retention-days: 5
build_rhel7:
needs: unit_tests
permissions:
contents: read
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Create RHEL 7 RPM
run: build-tools/RedHat_7/build.sh
- name: Get package name
id: pkg_path
run: |
echo "RHEL7_RPM=$(
ls -1 build-tools/RedHat_7/slurm-mail*.rpm
)" >> $GITHUB_ENV
- name: Create md5sum for RHEL 7 RPM
run: md5sum ${{ env.RHEL7_RPM }} > ${{ env.RHEL7_RPM }}.md5sum
- name: Store RHEL 7 RPM
uses: actions/upload-artifact@v4
with:
name: rhel7_pkg
path: ${{ env.RHEL7_RPM }}
if-no-files-found: error
retention-days: 5
- name: Store RHEL 7 RPM md5sum
uses: actions/upload-artifact@v4
with:
name: rhel7_pkg_md5sum
path: ${{ env.RHEL7_RPM }}.md5sum
if-no-files-found: error
retention-days: 5
build_amzn2:
needs: unit_tests
permissions:
contents: read
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Create Amazon Linux 2 RPM
run: build-tools/AmazonLinux_2/build.sh
- name: Get package name
id: pkg_path
run: |
echo "AMZN2_RPM=$(
ls -1 build-tools/AmazonLinux_2/slurm-mail*.rpm
)" >> $GITHUB_ENV
- name: Create md5sum for Amazon Linux 2 RPM
run: md5sum ${{ env.AMZN2_RPM }} > ${{ env.AMZN2_RPM }}.md5sum
- name: Store Amazon Linux 2 RPM
uses: actions/upload-artifact@v4
with:
name: amzn2_pkg
path: ${{ env.AMZN2_RPM }}
if-no-files-found: error
retention-days: 5
- name: Store Amazon Linux 2 RPM md5sum
uses: actions/upload-artifact@v4
with:
name: amzn2_pkg_md5sum
path: ${{ env.AMZN2_RPM }}.md5sum
if-no-files-found: error
retention-days: 5
build_amzn2023:
needs: unit_tests
permissions:
contents: read
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Create Amazon Linux 2023 RPM
run: build-tools/AmazonLinux_2023/build.sh
- name: Get package name
id: pkg_path
run: |
echo "AMZN2023_RPM=$(
ls -1 build-tools/AmazonLinux_2023/slurm-mail*.rpm
)" >> $GITHUB_ENV
- name: Create md5sum for Amazon Linux 2023 RPM
run: md5sum ${{ env.AMZN2023_RPM }} > ${{ env.AMZN2023_RPM }}.md5sum
- name: Store Amazon Linux 2023 RPM
uses: actions/upload-artifact@v4
with:
name: amzn2023_pkg
path: ${{ env.AMZN2023_RPM }}
if-no-files-found: error
retention-days: 5
- name: Store Amazon Linux 2023 RPM md5sum
uses: actions/upload-artifact@v4
with:
name: amzn2023_pkg_md5sum
path: ${{ env.AMZN2023_RPM }}.md5sum
if-no-files-found: error
retention-days: 5
build_rhel8:
needs: unit_tests
permissions:
contents: read
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Create RHEL 8 RPM
run: build-tools/RedHat_8/build.sh
- name: Get package name
id: pkg_path
run: |
echo "RHEL8_RPM=$(
ls -1 build-tools/RedHat_8/slurm-mail*.rpm
)" >> $GITHUB_ENV
- name: Create md5sum for RHEL 8 RPM
run: md5sum ${{ env.RHEL8_RPM }} > ${{ env.RHEL8_RPM }}.md5sum
- name: Store RHEL 8 RPM
uses: actions/upload-artifact@v4
with:
name: rhel8_pkg
path: ${{ env.RHEL8_RPM }}
if-no-files-found: error
retention-days: 5
- name: Store RHEL 8 RPM md5sum
uses: actions/upload-artifact@v4
with:
name: rhel8_pkg_md5sum
path: ${{ env.RHEL8_RPM }}.md5sum
if-no-files-found: error
retention-days: 5
build_rhel9:
needs: unit_tests
permissions:
contents: read
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Create RHEL 9 RPM
run: build-tools/RedHat_9/build.sh
- name: Get package name
id: pkg_path
run: |
echo "RHEL9_RPM=$(
ls -1 build-tools/RedHat_9/slurm-mail*.rpm
)" >> $GITHUB_ENV
- name: Create md5sum for RHEL 9 RPM
run: md5sum ${{ env.RHEL9_RPM }} > ${{ env.RHEL9_RPM }}.md5sum
- name: Store RHEL 9 RPM
uses: actions/upload-artifact@v4
with:
name: rhel9_pkg
path: ${{ env.RHEL9_RPM }}
if-no-files-found: error
retention-days: 5
- name: Store RHEL 9 RPM md5sum
uses: actions/upload-artifact@v4
with:
name: rhel9_pkg_md5sum
path: ${{ env.RHEL9_RPM }}.md5sum
if-no-files-found: error
retention-days: 5
build_suse15:
needs: unit_tests
permissions:
contents: read
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Create SUSE 15 RPM
run: build-tools/OpenSUSE_15/build.sh
- name: Get package name
id: pkg_path
run: |
echo "SUSE15_RPM=$(
ls -1 build-tools/OpenSUSE_15/slurm-mail*.rpm
)" >> $GITHUB_ENV
- name: Create md5sum for SUSE 15 RPM
run: md5sum ${{ env.SUSE15_RPM }} > ${{ env.SUSE15_RPM }}.md5sum
- name: Store SUSE 15 RPM
uses: actions/upload-artifact@v4
with:
name: suse15_pkg
path: ${{ env.SUSE15_RPM }}
if-no-files-found: error
retention-days: 5
- name: Store SUSE 15 RPM md5sum
uses: actions/upload-artifact@v4
with:
name: suse15_pkg_md5sum
path: ${{ env.SUSE15_RPM }}.md5sum
if-no-files-found: error
retention-days: 5
build_ubuntu20:
needs: unit_tests
permissions:
contents: read
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Create Ubuntu 20
run: build-tools/Ubuntu_20.04/build.sh
- name: Get package name
id: pkg_path
run: |
echo "UBUNTU20_PKG=$(
ls -1 build-tools/Ubuntu_20.04/slurm-mail*.deb
)" >> $GITHUB_ENV
- name: Create md5sum for Ubuntu 20 package
run: md5sum ${{ env.UBUNTU20_PKG }} > ${{ env.UBUNTU20_PKG }}.md5sum
- name: Store Ubuntu 20 package
uses: actions/upload-artifact@v4
with:
name: ubuntu20_pkg
path: ${{ env.UBUNTU20_PKG }}
if-no-files-found: error
retention-days: 5
- name: Store Ubuntu 20 package md5sum
uses: actions/upload-artifact@v4
with:
name: ubuntu20_pkg_md5sum
path: ${{ env.UBUNTU20_PKG }}.md5sum
if-no-files-found: error
retention-days: 5
build_ubuntu22:
needs: unit_tests
permissions:
contents: read
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Create Ubuntu 22
run: build-tools/Ubuntu_22.04/build.sh
- name: Get package name
id: pkg_path
run: |
echo "UBUNTU22_PKG=$(
ls -1 build-tools/Ubuntu_22.04/slurm-mail*.deb
)" >> $GITHUB_ENV
- name: Create md5sum for Ubuntu 22 package
run: md5sum ${{ env.UBUNTU22_PKG }} > ${{ env.UBUNTU22_PKG }}.md5sum
- name: Store Ubuntu 22 package
uses: actions/upload-artifact@v4
with:
name: ubuntu22_pkg
path: ${{ env.UBUNTU22_PKG }}
if-no-files-found: error
retention-days: 5
- name: Store Ubuntu 22 package md5sum
uses: actions/upload-artifact@v4
with:
name: ubuntu22_pkg_md5sum
path: ${{ env.UBUNTU22_PKG }}.md5sum
if-no-files-found: error
retention-days: 5
build_ubuntu24:
needs: unit_tests
permissions:
contents: read
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Create Ubuntu 24
run: build-tools/Ubuntu_24.04/build.sh
- name: Get package name
id: pkg_path
run: |
echo "UBUNTU24_PKG=$(
ls -1 build-tools/Ubuntu_24.04/slurm-mail*.deb
)" >> $GITHUB_ENV
- name: Create md5sum for Ubuntu 24 package
run: md5sum ${{ env.UBUNTU24_PKG }} > ${{ env.UBUNTU24_PKG }}.md5sum
- name: Store Ubuntu 24 package
uses: actions/upload-artifact@v4
with:
name: ubuntu24_pkg
path: ${{ env.UBUNTU24_PKG }}
if-no-files-found: error
retention-days: 5
- name: Store Ubuntu 24 package md5sum
uses: actions/upload-artifact@v4
with:
name: ubuntu24_pkg_md5sum
path: ${{ env.UBUNTU24_PKG }}.md5sum
if-no-files-found: error
retention-days: 5
generate_slurm_matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v4
- id: set-matrix
name: set-matrix
run: |
matrix=$(cat ./supported_slurm_versions.json)
echo "matrix=${matrix}" >> $GITHUB_OUTPUT
integration_tests_amzn2:
needs: [build_amzn2, generate_slurm_matrix]
permissions:
contents: read
packages: read
runs-on: ubuntu-20.04
strategy:
matrix:
slurm-version: ${{fromJson(needs.generate_slurm_matrix.outputs.matrix)}}
steps:
- name: Log in to the container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: 'amzn2_pkg'
path: tests/integration/
- name: Run integration tests
run: |
tests/integration/run.sh -s "${{ matrix.slurm-version }}" -o amzn2 -p
integration_tests_amzn2023:
needs: [build_amzn2023, generate_slurm_matrix]
permissions:
contents: read
packages: read
runs-on: ubuntu-20.04
strategy:
matrix:
slurm-version: ${{fromJson(needs.generate_slurm_matrix.outputs.matrix)}}
steps:
- name: Log in to the container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: 'amzn2023_pkg'
path: tests/integration/
- name: Run integration tests
run: |
tests/integration/run.sh -s "${{ matrix.slurm-version }}" -o amzn2023 -p
integration_tests_rhel7:
needs: [build_rhel7, generate_slurm_matrix]
permissions:
contents: read
packages: read
runs-on: ubuntu-20.04
strategy:
matrix:
slurm-version: ${{fromJson(needs.generate_slurm_matrix.outputs.matrix)}}
steps:
- name: Log in to the container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: 'rhel7_pkg'
path: tests/integration/
- name: Run integration tests
run: |
tests/integration/run.sh -s "${{ matrix.slurm-version }}" -o el7 -p
integration_tests_rhel8:
needs: [build_rhel8, generate_slurm_matrix]
permissions:
contents: read
packages: read
runs-on: ubuntu-20.04
strategy:
matrix:
slurm-version: ${{fromJson(needs.generate_slurm_matrix.outputs.matrix)}}
steps:
- name: Log in to the container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: 'rhel8_pkg'
path: tests/integration/
- name: Run integration tests
run: |
tests/integration/run.sh -s "${{ matrix.slurm-version }}" -o el8 -p
integration_tests_rhel9:
needs: [build_rhel9, generate_slurm_matrix]
permissions:
contents: read
packages: read
runs-on: ubuntu-20.04
strategy:
matrix:
slurm-version: ${{fromJson(needs.generate_slurm_matrix.outputs.matrix)}}
steps:
- name: Log in to the container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: 'rhel9_pkg'
path: tests/integration/
- name: Run integration tests
run: |
tests/integration/run.sh -s "${{ matrix.slurm-version }}" -o el9 -p
integration_tests_suse15:
needs: [build_suse15, generate_slurm_matrix]
permissions:
contents: read
packages: read
runs-on: ubuntu-20.04
strategy:
matrix:
slurm-version: ${{fromJson(needs.generate_slurm_matrix.outputs.matrix)}}
steps:
- name: Log in to the container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: 'suse15_pkg'
path: tests/integration/
- name: Run integration tests
run: |
tests/integration/run.sh -s "${{ matrix.slurm-version }}" -o sl15 -p
integration_tests_ubuntu20:
needs: [build_ubuntu20, generate_slurm_matrix]
permissions:
contents: read
packages: read
runs-on: ubuntu-20.04
strategy:
matrix:
slurm-version: ${{fromJson(needs.generate_slurm_matrix.outputs.matrix)}}
steps:
- name: Log in to the container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: 'ubuntu20_pkg'
path: tests/integration/
- name: Run integration tests
run: |
tests/integration/run.sh -s "${{ matrix.slurm-version }}" -o ub20 -p
integration_tests_ubuntu22:
needs: [build_ubuntu22, generate_slurm_matrix]
permissions:
contents: read
packages: read
runs-on: ubuntu-20.04
strategy:
matrix:
slurm-version: ${{fromJson(needs.generate_slurm_matrix.outputs.matrix)}}
steps:
- name: Log in to the container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: 'ubuntu22_pkg'
path: tests/integration/
- name: Run integration tests
run: |
tests/integration/run.sh -s "${{ matrix.slurm-version }}" -o ub22 -p
integration_tests_ubuntu24:
needs: [build_ubuntu24, generate_slurm_matrix]
permissions:
contents: read
packages: read
runs-on: ubuntu-20.04
strategy:
matrix:
slurm-version: ${{fromJson(needs.generate_slurm_matrix.outputs.matrix)}}
steps:
- name: Log in to the container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: 'ubuntu24_pkg'
path: tests/integration/
- name: Run integration tests
run: |
tests/integration/run.sh -s "${{ matrix.slurm-version }}" -o ub24 -p
release:
if: startsWith(github.ref, 'refs/tags/v')
needs: [
build_tar,
integration_tests_amzn2,
integration_tests_amzn2023,
integration_tests_rhel7,
integration_tests_rhel8,
integration_tests_rhel9,
integration_tests_suse15,
integration_tests_ubuntu20,
integration_tests_ubuntu22,
integration_tests_ubuntu24
]
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: create download directory
run: |
mkdir downloads
- uses: actions/download-artifact@v4
with:
pattern: 'amzn2_pkg*'
path: downloads
merge-multiple: true
- uses: actions/download-artifact@v4
with:
pattern: 'amzn2023_pkg*'
path: downloads
merge-multiple: true
- uses: actions/download-artifact@v4
with:
pattern: 'rhel7_pkg*'
path: downloads
merge-multiple: true
- uses: actions/download-artifact@v4
with:
pattern: 'rhel8_pkg*'
path: downloads
merge-multiple: true
- uses: actions/download-artifact@v4
with:
pattern: 'rhel9_pkg*'
path: downloads
merge-multiple: true
- uses: actions/download-artifact@v4
with:
pattern: 'suse15_pkg*'
path: downloads
merge-multiple: true
- uses: actions/download-artifact@v4
with:
pattern: 'tar_file*'
path: downloads
merge-multiple: true
- uses: actions/download-artifact@v4
with:
pattern: 'ubuntu20_pkg*'
path: downloads
merge-multiple: true
- uses: actions/download-artifact@v4
with:
pattern: 'ubuntu22_pkg*'
path: downloads
merge-multiple: true
- uses: actions/download-artifact@v4
with:
pattern: 'ubuntu24_pkg*'
path: downloads
merge-multiple: true
- run: ls -1 downloads
- name: GH Release
uses: softprops/action-gh-release@v2
with:
files: downloads/*