Skip to content

update workflow

update workflow #28

Workflow file for this run

name: Build and Upload PDF Creator
on:
push:
branches:
- main
- 'v[0-9]+.[0-9]+.[0-9]+'
pull_request:
branches:
- main
- 'v[0-9]+.[0-9]+.[0-9]+'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.22.4
- name: Install GTK3 dependencies
run: sudo apt-get update && sudo apt-get install -y libgtk-3-dev
- name: Install dependencies
run: go mod tidy
- name: Build the binary
run: go build -o print-pdf -v ./cmd/print-pdf
- name: Get package version
id: get_version
run: |
EPOCH_TIME=$(date +%s)
COMMIT_HASH=$(git rev-parse --short HEAD)
BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD)
if [[ "$BRANCH_NAME" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
VERSION=$BRANCH_NAME
else
VERSION="${EPOCH_TIME}-${COMMIT_HASH}"
fi
RPM_VERSION=$(echo $VERSION | sed 's/-/_/g')
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "rpm_version=$RPM_VERSION" >> $GITHUB_OUTPUT
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: print-pdf
path: print-pdf
- name: Install FPM
run: sudo gem install fpm
- name: Prepare package directory
run: |
mkdir -p package/usr/local/bin
mkdir -p package/usr/share/applications
cp print-pdf package/usr/local/bin/
cp .package-build/print-pdf.desktop package/usr/share/applications/
- name: Build .deb package
run: |
VERSION=${{ steps.get_version.outputs.version }}
fpm -s dir -t deb -n print-pdf -v $VERSION -C package usr/local/bin usr/share/applications
- name: Upload .deb package
uses: actions/upload-artifact@v4
with:
name: print-pdf-deb
path: print-pdf_${{ steps.get_version.outputs.version }}_amd64.deb
- name: Build .rpm package
run: |
VERSION=${{ steps.get_version.outputs.version }}
fpm -s dir -t rpm -n print-pdf -v $VERSION -C package usr/local/bin usr/share/applications
- name: Upload .rpm package
uses: actions/upload-artifact@v4
with:
name: print-pdf-rpm
path: print-pdf-${{ steps.get_version.outputs.rpm_version }}-1.x86_64.rpm