Compare commits

...

9 Commits

Author SHA1 Message Date
b1e987f1b1 Merge pull request 'update' (#4) from fix-build into main
Reviewed-on: #4
2025-11-24 16:28:33 -06:00
Stephen Simpson
13308d4b4b update 2025-11-24 16:28:17 -06:00
9e2943754f Merge pull request 'update' (#3) from fix-build into main
Reviewed-on: #3
2025-11-24 15:52:56 -06:00
Stephen Simpson
b20a70b860 update 2025-11-24 15:52:42 -06:00
b371431aa5 Merge pull request 'update' (#2) from fix-build into main
Reviewed-on: #2
2025-11-24 15:27:06 -06:00
Stephen Simpson
c86868b11c update 2025-11-24 15:26:41 -06:00
2315422d4f Merge pull request 'fix-build' (#1) from fix-build into main
Reviewed-on: #1
2025-11-24 15:20:19 -06:00
Stephen Simpson
29f299f984 Remove GitHub Pages deployment step from build workflow and add Jenkinsfile for Kubernetes-based builds
Signed-off-by: Stephen Simpson <ssimpson89@users.noreply.github.com>
2025-11-24 15:19:32 -06:00
Stephen Simpson
8428dc9b1a Refactor GitHub Actions workflow to build Docker image and run man page generation in container
Signed-off-by: Stephen Simpson <ssimpson89@users.noreply.github.com>
2025-11-24 15:01:08 -06:00
2 changed files with 123 additions and 31 deletions

View File

@@ -25,39 +25,26 @@ on:
jobs:
build:
runs-on: ubuntu-latest
container:
image: rockylinux:9
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install system dependencies
- name: Build Docker image
run: |
dnf install -y \
python3.11 \
python3.11-pip \
mandoc \
rpm-build \
dnf-plugins-core \
git
docker build -t rocky-man:latest .
- name: Install UV
- name: Create output directories
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
mkdir -p ./html ./tmp
- name: Install Python dependencies
- name: Build man pages in container
run: |
uv pip install --system -e .
- name: Build man pages
run: |
python3.11 -m rocky_man.main \
--versions ${{ github.event.inputs.versions || '8.10 9.5' }} \
--output-dir ./html \
--download-dir ./tmp/downloads \
--extract-dir ./tmp/extracts \
docker run --rm \
-v "$(pwd)/html:/data/html" \
-v "$(pwd)/tmp:/data/tmp" \
rocky-man:latest \
--versions ${{ github.event.inputs.versions || '8.10 9.6 10.0' }} \
--verbose
env:
PYTHONUNBUFFERED: 1
@@ -68,11 +55,3 @@ jobs:
name: rocky-man-pages
path: html/
retention-days: 30
- name: Deploy to GitHub Pages
if: github.ref == 'refs/heads/main'
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./html
force_orphan: true

113
Jenkinsfile vendored Normal file
View File

@@ -0,0 +1,113 @@
// Jenkinsfile for Rocky Man
// This pipeline uses Kubernetes agents to build and run the container
pipeline {
agent {
kubernetes {
yaml """
apiVersion: v1
kind: Pod
metadata:
labels:
jenkins: agent
spec:
containers:
- name: docker
image: docker:24-dind
securityContext:
privileged: true
volumeMounts:
- name: docker-sock
mountPath: /var/run
command:
- dockerd-entrypoint.sh
- name: docker-cli
image: docker:24-cli
command:
- cat
tty: true
volumeMounts:
- name: docker-sock
mountPath: /var/run
volumes:
- name: docker-sock
emptyDir: {}
"""
}
}
parameters {
string(
name: 'VERSIONS',
defaultValue: '8.10 9.6 10.0',
description: 'Rocky Linux versions to build (space-separated)'
)
}
options {
buildDiscarder(logRotator(numToKeepStr: '10'))
timeout(time: 2, unit: 'HOURS')
}
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build Docker Image') {
steps {
container('docker-cli') {
sh '''
docker build -t rocky-man:${BUILD_NUMBER} .
docker tag rocky-man:${BUILD_NUMBER} rocky-man:latest
'''
}
}
}
stage('Build Man Pages') {
steps {
container('docker-cli') {
sh """
# Create output directories
mkdir -p ./html ./tmp
# Run the container to build man pages
docker run --rm \
-v "\$(pwd)/html:/app/html" \
-v "\$(pwd)/tmp:/data/tmp" \
rocky-man:${BUILD_NUMBER} \
--versions ${params.VERSIONS} \
--verbose
"""
}
}
}
stage('Archive Artifacts') {
steps {
archiveArtifacts artifacts: 'html/**/*', fingerprint: true
}
}
}
post {
success {
echo 'Build completed successfully!'
}
failure {
echo 'Build failed!'
}
cleanup {
container('docker-cli') {
sh '''
# Clean up Docker images to save space
docker rmi rocky-man:${BUILD_NUMBER} || true
docker rmi rocky-man:latest || true
'''
}
}
}
}