Skip to content

Update issue templates (#21) #112

Update issue templates (#21)

Update issue templates (#21) #112

Workflow file for this run

name: Lint, Test & Build
on:
push:
branches:
- '*'
jobs:
lint:
name: Lint
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest ]
python-version: [ '3.10' ]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install flake8
- name: Run Lint
run: |
flake8 --verbose --color auto --count --statistics --format=default --output-file=flake8-report
- name: Upload Report
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: lint-report-${{ matrix.python-version }}-${{ matrix.os }}
path: flake8-report
test:
name: Test
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest, macos-latest ]
python-version: [ '3.10', '3.11', '3.12' ]
node-version: [ '20' ]
runs-on: ${{ matrix.os }}
needs: lint
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install Python Dependencies
run: |
python -m pip install --upgrade pip
pip install pytest
pip install pytest-html
pip install -r requirements.txt
- name: Install NodeJS Dependencies
run: |
cd tests
npm install
- name: Generate Self-Signed SSL Certificate
run: |
cd tests
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 2 -nodes -subj "/CN=localhost"
- name: Start HTTP/s Server (Ubuntu and MacOS)
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'
run: |
cd tests
nohup node index.js &
sleep 5
- name: Start HTTP/s Server (Windows)
if: matrix.os == 'windows-latest'
run: |
cd tests
Start-Process -FilePath node -ArgumentList 'index.js'
Start-Sleep -Seconds 5
- name: Set Branch Name (Windows)
if: matrix.os == 'windows-latest'
run: |
$branchName = ${GITHUB_REF##*/}
Write-Host "Branch Name: $branchName"
Write-Host "BRANCH_NAME=$branchName" | Out-File -FilePath $env:GITHUB_ENV -Append
- name: Set Branch Name (Ubuntu and macOS)
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'
run: |
BRANCH_NAME=${GITHUB_REF##*/}
echo "Branch name: $BRANCH_NAME"
echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV
- name: Run Tests
run: |
pytest tests -vv -rEPW -o pytest_collection_order=alphabetical --cache-clear --color=yes --html=pytest_results.html --self-contained-html
- name: Upload Report
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: test-${{ matrix.os }}-${{ matrix.python-version }}
path: pytest_results.html
build:
name: Build
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest, macos-latest ]
python-version: [ '3.10' ]
runs-on: ${{ matrix.os }}
needs: test
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel
- name: Build Package
run: |
python setup.py sdist
- name: Get Package Name (Windows)
if: matrix.os == 'windows-latest'
run: |
$path_separator = "\\"
$latestFile = Get-ChildItem -Path "dist\\" | Sort-Object LastWriteTime -Descending | Select-Object -First 1
Write-Host "Latest file: $latestFile"
Write-Output "PACKAGE_NAME=dist$path_separator$($latestFile.Name)" | Out-File -FilePath $env:GITHUB_ENV -Append
- name: Get Package Name (Ubuntu and macOS)
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'
run: |
path_separator="/"
latestFile=$(ls -t dist/ | head -n 1)
echo "Latest file: $latestFile"
echo "PACKAGE_NAME=dist$path_separator$latestFile" >> $GITHUB_ENV
- name: Install Package
run: |
pip install ${{ env.PACKAGE_NAME }}
release_check:
name: Release Check
timeout-minutes: 20
strategy:
fail-fast: true
matrix:
os: [ ubuntu-latest ]
python-version: [ '3.10' ]
runs-on: ${{ matrix.os }}
needs: build
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine
- name: Build Package
run: |
python setup.py sdist bdist_wheel
- name: Get Package Name (Windows)
if: matrix.os == 'windows-latest'
run: |
$path_separator = "\\"
$latestFile = Get-ChildItem -Path "dist\\" | Sort-Object LastWriteTime -Descending | Select-Object -First 1
Write-Host "Latest file: $latestFile"
Write-Output "PACKAGE_NAME=dist$path_separator$($latestFile.Name)" | Out-File -FilePath $env:GITHUB_ENV -Append
- name: Get Package Name (Ubuntu and macOS)
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'
run: |
path_separator="/"
latestFile=$(ls -t dist/ | head -n 1)
echo "Latest file: $latestFile"
echo "PACKAGE_NAME=dist$path_separator$latestFile" >> $GITHUB_ENV
- name: Release Check
run: |
twine check ${{ env.PACKAGE_NAME }}