Skip to content

Build

Build #4

Workflow file for this run

name: Build
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
workflow_dispatch:
inputs:
testType:
description: 'Type of tests to run'
required: true
default: 'integration'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout RupmPrinter
uses: actions/checkout@v4
with:
path: main
- name: Checkout GhostPDL
uses: actions/checkout@v4
with:
repository: ArtifexSoftware/ghostpdl
path: ghostpdl
- name: configure
run: |
cd ghostpdl
./autogen.sh --build=x86-linux-gnu --with-drivers=PNG --without-libtiff --without-libidn --without-libpaper --without-tesseract --without-ijs --without-urf --without-so --without-cal --without-pdftoraster --with-pcl=gpcl6 --with-pdf=no -with-gpdl=no --with-gs=no --with-xps=no --without-jbig2dec --disable-gtk --disable-cups --disable-openjpeg
- name: Build GPCL6 Library
run: |
cd ghostpdl
make gpcl6 -j
make libgpcl6 -j
- name: Run check
run: |
cd ghostpdl
ls bin
./bin/gpcl6 -h
- name: Copy Lib
run: |
cp ghostpdl/bin/gpcl6.a main/lib/linux/libgpcl6.a
ls main/lib/linux
- name: Install Rust & Cargo
run: rustup update stable && rustup default stable
- name: Install Dep
run: |
sudo apt-get install libfontconfig1-dev
sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev
- name: Build RupmPrinter
run: |
cd main
cargo build --release
- uses: actions/upload-artifact@v4
with:
name: Linux
path: |
ghostpdl/bin
main/target/release/RustPrinter
build-macos:
runs-on: macos-latest
steps:
- name: Checkout RupmPrinter
uses: actions/checkout@v4
with:
path: main
- name: Checkout GhostPDL
uses: actions/checkout@v4
with:
repository: ArtifexSoftware/ghostpdl
path: ghostpdl
- name: Install Auto conf
run: brew install autoconf automake libtool
- name: configure
run: |
cd ghostpdl
./autogen.sh --with-drivers=PNG --without-libtiff --without-libidn --without-libpaper --without-tesseract --without-ijs --without-urf --without-so --without-cal --without-pdftoraster --with-pcl=gpcl6 --with-pdf=no -with-gpdl=no --with-gs=no --with-xps=no --without-jbig2dec --disable-gtk --disable-cups --disable-openjpeg
- name: Install dependencies
run: |
cd ghostpdl
make gpcl6 -j
make libgpcl6 -j
- name: Run check
run: |
cd ghostpdl
ls bin
./bin/gpcl6 -h
- name: Copy Lib
run: |
mkdir -p main/lib/macos
cp ghostpdl/bin/gpcl6.a main/lib/macos/libgpcl6.a
ls main/lib/macos
- name: Install Rust & Cargo
run: rustup update stable && rustup default stable
- name: Build RupmPrinter
run: |
cd main
cargo build --release
- uses: actions/upload-artifact@v4
with:
name: MacOS
path: |
ghostpdl/bin
main/target/release/RustPrinter
build-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Checkout RupmPrinter
uses: actions/checkout@v4
with:
path: main
- name: Checkout GhostPDL
uses: actions/checkout@v4
with:
repository: ArtifexSoftware/ghostpdl
path: ghostpdl
- uses: ilammy/msvc-dev-cmd@v1
- name: make
run: |
cd ghostpdl
nmake -f psi\msvc32.mak WIN64= SBR=1 DEVSTUDIO= gpcl6
nmake -f psi\msvc32.mak WIN64= DEVSTUDIO= bsc
- name: Run check
run: |
cd ghostpdl
ls bin
./bin/gpcl6win64.exe -h
- name: Copy Lib
run: |
xcopy ghostpdl\bin\* main\lib\windows\ /E /I /Y
dir main\lib\windows
- name: Install Rust & Cargo
run: rustup update stable && rustup default stable
- name: Build RupmPrinter
run: |
cd main
cargo build --release
- uses: actions/upload-artifact@v4
with:
name: Windows
path: |
ghostpdl\bin
main\target\release\*.exe