Skip to content

Build pyspy

Build pyspy #12

Workflow file for this run

name: Build pyspy
on:
push:
branches:
- main
paths:
- 'spy.py'
workflow_dispatch:
env:
GIT_USER_NAME: github-actions[bot]
GIT_USER_EMAIL: 41898282+github-actions[bot]@users.noreply.github.com
jobs:
ubuntu-vm-build-job:
name: Build for Ubuntu
runs-on: ubuntu-${{ matrix.ubuntu-version }}
strategy:
matrix:
include:
- ubuntu-release: focal_fossa
ubuntu-version: 20.04
- ubuntu-release: jammy_jellyfish
ubuntu-version: 22.04
- ubuntu-release: noble_numbat
ubuntu-version: 24.04
fail-fast: false
steps:
- uses: actions/checkout@v3
- name: Run venv, pip, build and upload artifacts
run: |
python3 -m venv venv && . venv/bin/activate
pip3 install --upgrade pip wheel setuptools
pip3 install -r requirements.txt
pip3 install pyinstaller sysv-ipc geoip2 flask
./build.sh && mkdir ./build-ubuntu && mv -f *.tar.gz *.sha512sum ./build-ubuntu
- uses: actions/upload-artifact@v3
with:
name: build-ubuntu-artifacts
path: ./build-ubuntu/*
if-no-files-found: error
debian-container-build-job:
name: Build for Debian
runs-on: ubuntu-latest
strategy:
matrix:
include:
- debian-release: buster
debian-version: 10
python-version: 3.7
- debian-release: bullseye
debian-version: 11
python-version: 3.9
- debian-release: bookworm
debian-version: 12
python-version: 3.11
fail-fast: false
container: python:${{ matrix.python-version }}-${{ matrix.debian-release }}
steps:
- uses: actions/checkout@v3
- name: Run apt, venv, pip, build and upload artifacts
run: |
DEBIAN_FRONTEND=noninteractive apt-get update -y
apt-get install -y upx-ucl || {
apt-get install -y libucl1 &&
wget -q http://ftp.us.debian.org/debian/pool/main/u/upx-ucl/upx-ucl_3.96-3+b1_amd64.deb &&
dpkg -i upx-ucl_3.96-3+b1_amd64.deb;
}
python3 -m venv venv && . venv/bin/activate
pip3 install --upgrade pip wheel setuptools
pip3 install -r requirements.txt
pip3 install pyinstaller sysv-ipc geoip2 flask
./build.sh && mkdir ./build-debian && mv -f *.tar.gz *.sha512sum ./build-debian
- uses: actions/upload-artifact@v3
with:
name: build-debian-artifacts
path: ./build-debian/*
if-no-files-found: error
# centos7-container-build-job:
# name: Build for CentOS 7
# runs-on: ubuntu-latest
# container: centos:7
# steps:
# # get git-2.18 from softwarecollections, git-1.8 from base repo is too old for gh-actions
# - name: Install git-2.18
# run: |
# yum install -y centos-release-scl && yum install -y rh-git218
# cp -v -rf /opt/rh/httpd24/root/* /opt/rh/rh-git218/root/* / || true
# - uses: actions/checkout@v3
# - name: Run yum, venv, pip, build and upload artifacts
# run: |
# yum install -y gcc python3-devel python3-pip python3-virtualenv
# yum install -y https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/u/ucl-1.03-24.el7.x86_64.rpm
# yum install -y https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/u/upx-3.96-9.el7.x86_64.rpm
# python3 -m venv venv && . venv/bin/activate
# pip3 install --upgrade pip wheel setuptools
# pip3 install -r requirements.txt
# pip3 install pyinstaller sysv-ipc geoip2
# ./build.sh && mkdir ./build-centos && mv -f *.tar.gz *.sha512sum ./build-centos
# - uses: actions/upload-artifact@v3
# with:
# name: build-centos-artifacts
# path: ./build-centos/*
# if-no-files-found: error
rhel-container-build-job:
name: Build for RHEL
runs-on: ubuntu-latest
strategy:
matrix:
include:
- rhel-distro: amalinux
rhel-version: 9.4
- rhel-distro: rockylinux
rhel-version: 9.3
fail-fast: false
container: ${{ matrix.rhel-distro }}:${{ matrix.rhel-version }}
steps:
- uses: actions/checkout@v3
- name: Run yum, venv, pip, build and upload artifacts
run: |
dnf install -y gcc python3-devel python3-pip
dnf install -y epel-release
dnf install -y upx ucl
python3 -m venv venv && . venv/bin/activate
pip3 install --upgrade pip wheel setuptools
pip3 install -r requirements.txt
pip3 install pyinstaller sysv-ipc geoip2
./build.sh && mkdir ./build-${{ matrix.rhel-distro }} && mv -f *.tar.gz *.sha512sum ./build-${{ matrix.rhel-distro }}
- uses: actions/upload-artifact@v3
with:
name: build-${{ matrix.rhel-distro }}-artifacts
path: ./build-${{ matrix.rhel-distro }}/*
if-no-files-found: error
alpine-container-build-job:
name: Build for Alpine Linux
runs-on: ubuntu-latest
container: alpine:latest
steps:
- uses: actions/checkout@v3
- name: Run ap, venv, pip, build and upload artifacts
run: |
apk add python3 python3-dev py3-pip py3-virtualenv gcc musl-dev upx
python3 -m venv venv && . venv/bin/activate
pip3 install --upgrade pip wheel setuptools
pip3 install -r requirements.txt
pip3 install pyinstaller sysv-ipc geoip2 flask
./build.sh && mkdir ./build-alpine && mv -f *.tar.gz *.sha512sum ./build-alpine
- uses: actions/upload-artifact@v3
with:
name: build-alpine-artifacts
path: ./build-alpine/*
if-no-files-found: error
create-release:
name: Get artifacts, create release
runs-on: ubuntu-latest
needs: [ubuntu-vm-build-job, debian-container-build-job, rhel-container-build-job, alpine-container-build-job]
steps:
- uses: actions/checkout@v3
- name: Download artifacts
uses: actions/download-artifact@v3
with:
path: build-artifacts
- name: Create gh release using 'hub'
run: |
gh release create $(find -type f -printf '-a %p ') slv-pyspy-v$(date +%Y%m%d) -F - <<'#####'
pyspy
Shows users logged into glftpd in terminal or as web page. Like 'gl_spy' and 'webspy' from foo-tools.
Download binaries for your specific OS
#####
working-directory: ./build-artifacts
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}