mirror of
https://github.com/gyptazy/ProxLB.git
synced 2026-04-05 20:31:57 +02:00
refactor: Code refactor of ProxLB preparing release 1.1.0
Fixes: #114 Fixes: #132 Fixes: #130 Fixes: #129 Fixes: #128 Fixes: #127 Fixes: #123 Fixes: #102
This commit is contained in:
26
.github/workflows/02-create-package.yml
vendored
26
.github/workflows/02-create-package.yml
vendored
@@ -1,26 +0,0 @@
|
||||
name: Run basic pipeline on push
|
||||
on: [push]
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: ["3.8"]
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Set up Python for ProxLB
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Install dependencies for ProxLB
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install pytest proxmoxer flake8
|
||||
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
||||
- name: Run Python linting
|
||||
run: |
|
||||
python3 -m flake8 proxlb
|
||||
- name: Create distro packages
|
||||
run: |
|
||||
cd packaging
|
||||
./01_package.sh
|
||||
21
.github/workflows/10-code-liniting.yml
vendored
Normal file
21
.github/workflows/10-code-liniting.yml
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
name: Code linting
|
||||
on: [push]
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: ["3.8"]
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Setup dependencies for code linting
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Install additional dependencies for code linting
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get -y install python3-pycodestyle pycodestyle
|
||||
- name: Run code linting on ProxLB Python code
|
||||
run: |
|
||||
pycodestyle proxlb/*
|
||||
73
.github/workflows/20-pipeline-build-deb-package.yml
vendored
Normal file
73
.github/workflows/20-pipeline-build-deb-package.yml
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
name: "Build package: .deb"
|
||||
on: [push]
|
||||
jobs:
|
||||
lint-code-proxlb:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: ["3.8"]
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Setup dependencies for code linting
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Install additional dependencies for code linting
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get -y install python3-pycodestyle pycodestyle
|
||||
- name: Run code linting on ProxLB Python code
|
||||
run: |
|
||||
pycodestyle proxlb/* && \
|
||||
echo "OK: Code linting successfully performed on ProxLB code."
|
||||
|
||||
build-package-debian:
|
||||
needs: lint-code-proxlb
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
ref: 'development'
|
||||
|
||||
- name: Set up Docker with Debian image
|
||||
run: |
|
||||
docker pull debian:latest
|
||||
|
||||
- name: Build DEB package in Docker container
|
||||
run: |
|
||||
docker run --rm -v $(pwd):/workspace -w /workspace debian:latest bash -c "
|
||||
# Install dependencies
|
||||
apt-get update && \
|
||||
apt-get install -y python3 python3-setuptools debhelper dh-python python3-pip python3-stdeb python3-proxmoxer python3-requests python3-urllib3 && \
|
||||
# Build package
|
||||
python3 setup.py --command-packages=stdeb.command bdist_deb && \
|
||||
echo 'OK: Debian package successfully created.'
|
||||
"
|
||||
|
||||
- name: Upload Debian package python3-proxlb as artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: debian-package
|
||||
path: deb_dist/*.deb
|
||||
|
||||
integration-test-debian:
|
||||
needs: build-package-debian
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Download Debian package artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: debian-package
|
||||
path: deb_dist/
|
||||
|
||||
- name: Set up Docker with Debian image
|
||||
run: docker pull debian:latest
|
||||
|
||||
- name: Install and test Debian package in Docker container
|
||||
run: |
|
||||
docker run --rm -v $(pwd)/deb_dist:/deb_dist -w /deb_dist debian:latest bash -c "
|
||||
apt-get update && \
|
||||
apt-get install -y ./python3-proxlb*.deb && \
|
||||
python3 -c 'import proxlb; print(\"OK: Debian package successfully installed.\")'
|
||||
"
|
||||
96
.github/workflows/20-pipeline-build-rpm-package.yml
vendored
Normal file
96
.github/workflows/20-pipeline-build-rpm-package.yml
vendored
Normal file
@@ -0,0 +1,96 @@
|
||||
name: "Build package: .rpm"
|
||||
on: [push]
|
||||
jobs:
|
||||
lint-code-proxlb:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: ["3.8"]
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Setup dependencies for code linting
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Install additional dependencies for code linting
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get -y install python3-pycodestyle pycodestyle
|
||||
- name: Run code linting on ProxLB Python code
|
||||
run: |
|
||||
pycodestyle proxlb/* && \
|
||||
echo "OK: Code linting successfully performed on ProxLB code."
|
||||
|
||||
build-package-rpm:
|
||||
needs: lint-code-proxlb
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
ref: 'development'
|
||||
|
||||
- name: Set up Docker with Debian image
|
||||
run: |
|
||||
docker pull debian:latest
|
||||
|
||||
- name: Build DEB package in Docker container
|
||||
run: |
|
||||
docker run --rm -v $(pwd):/workspace -w /workspace debian:latest bash -c "
|
||||
# Install dependencies
|
||||
apt-get update && \
|
||||
apt-get install -y python3 python3-setuptools rpm debhelper dh-python python3-pip python3-stdeb python3-proxmoxer python3-requests python3-urllib3 && \
|
||||
# Build package
|
||||
python3 setup.py --command-packages=stdeb.command bdist_rpm && \
|
||||
echo 'OK: RPM package successfully created.'
|
||||
"
|
||||
|
||||
- name: Upload RPM package python3-proxlb as artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: rpm-package
|
||||
path: dist/*.rpm
|
||||
|
||||
# integration-test-rpm-rockylinux-9:
|
||||
# needs: build-package-rpm
|
||||
# runs-on: ubuntu-latest
|
||||
# steps:
|
||||
# - name: Download RPM package artifact
|
||||
# uses: actions/download-artifact@v4
|
||||
# with:
|
||||
# name: rpm-package
|
||||
# path: dist/
|
||||
|
||||
# - name: Set up Docker with RockyLinux 9 image
|
||||
# run: docker pull rockylinux:9
|
||||
|
||||
# - name: Install and test RPM package in Rocky Linux Docker container
|
||||
# run: |
|
||||
# docker run --rm -v $(pwd)/dist:/dist -w /dist rockylinux:9 bash -c "
|
||||
# # DNF does not handle wildcards well
|
||||
# rpm_file=\$(ls proxlb*.noarch.rpm) && \
|
||||
# dnf install -y \$rpm_file && \
|
||||
# python3 -c 'import proxlb; print(\"OK: RPM package successfully installed.\")'
|
||||
# "
|
||||
|
||||
# integration-test-rpm-rockylinux-8:
|
||||
# needs: build-package-rpm
|
||||
# runs-on: ubuntu-latest
|
||||
# steps:
|
||||
# - name: Download RPM package artifact
|
||||
# uses: actions/download-artifact@v4
|
||||
# with:
|
||||
# name: rpm-package
|
||||
# path: dist/
|
||||
|
||||
# - name: Set up Docker with RockyLinux 8 image
|
||||
# run: docker pull rockylinux:8
|
||||
|
||||
# - name: Install and test RPM package in Rocky Linux Docker container
|
||||
# run: |
|
||||
# docker run --rm -v $(pwd)/dist:/dist -w /dist rockylinux:8 bash -c "
|
||||
# # DNF does not handle wildcards well
|
||||
# rpm_file=\$(ls proxlb*.noarch.rpm) && \
|
||||
# dnf install -y \$rpm_file && \
|
||||
# python3 -c 'import proxlb; print(\"OK: RPM package successfully installed.\")'
|
||||
# "
|
||||
Reference in New Issue
Block a user