mirror of
https://github.com/qpdf/qpdf.git
synced 2024-11-16 17:45:09 +00:00
4e8d21d849
External libraries for Windows are now built automatically in the qpdf/external-libs repository and include openssl in addition to zlib and jpeg. Use these, and update the Windows build to build with the openssl crypto provider by default. We leave the native crypto provider enabled in case there is a problem with openssl and also to continue to exercise that code.
134 lines
3.6 KiB
YAML
134 lines
3.6 KiB
YAML
name: QPDF Build
|
|
env:
|
|
QTEST_COLOR: 1
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
- master
|
|
- build
|
|
- build/*
|
|
paths-ignore:
|
|
- 'ChangeLog'
|
|
- 'README*'
|
|
- 'TODO'
|
|
pull_request:
|
|
schedule:
|
|
# Building regularly with cron makes it safe for us to use
|
|
# *-latest with runs-on. If a new version of tools or agents comes
|
|
# out, we'll find out fast if our builds break on it because we
|
|
# have reliable testing.
|
|
- cron: '12 4 * * 5'
|
|
jobs:
|
|
Distfiles:
|
|
# Generate distfiles.zip, which is a prerequisite for the mac and
|
|
# Windows builds. Only the mac and Windows builds actually "need"
|
|
# it, but declaring all the jobs to need it forces it to run
|
|
# first.
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: 'Create distfiles.zip'
|
|
run: build-scripts/make-distfiles
|
|
- name: 'Upload extra distribution files'
|
|
uses: actions/upload-artifact@v1
|
|
with:
|
|
name: distfiles
|
|
path: distfiles.zip
|
|
- name: 'Upload external libs'
|
|
uses: actions/upload-artifact@v1
|
|
with:
|
|
name: external-libs
|
|
path: external-libs-dist
|
|
Linux:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: 'Generate, build, and test'
|
|
run: build-scripts/build-linux
|
|
- name: Upload distribution
|
|
uses: actions/upload-artifact@v1
|
|
with:
|
|
name: distribution
|
|
path: distribution
|
|
Windows:
|
|
runs-on: windows-latest
|
|
needs: Distfiles
|
|
strategy:
|
|
fail-fast: false
|
|
max-parallel: 4
|
|
matrix:
|
|
tool: [msvc, mingw]
|
|
wordsize: [64, 32]
|
|
steps:
|
|
- name: 'Disable git autocrlf'
|
|
shell: bash
|
|
run: git config --global core.autocrlf input
|
|
- uses: actions/checkout@v2
|
|
- name: 'Download distribution files'
|
|
uses: actions/download-artifact@v2
|
|
with:
|
|
name: distfiles
|
|
- name: 'Download external libs'
|
|
uses: actions/download-artifact@v2
|
|
with:
|
|
name: external-libs
|
|
path: .
|
|
- name: 'Build, test, generate binary distributions'
|
|
shell: cmd
|
|
run: build-scripts/build-windows.bat ${{ matrix.wordsize }} ${{ matrix.tool }}
|
|
- name: 'Upload binary distributions'
|
|
uses: actions/upload-artifact@v1
|
|
with:
|
|
name: distribution
|
|
path: distribution
|
|
macOS:
|
|
runs-on: macos-latest
|
|
needs: Distfiles
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: 'Download distribution files'
|
|
uses: actions/download-artifact@v2
|
|
with:
|
|
name: distfiles
|
|
- name: 'Download external libs'
|
|
uses: actions/download-artifact@v2
|
|
with:
|
|
name: external-libs
|
|
path: .
|
|
- name: 'Mac build and test'
|
|
run: build-scripts/build-mac
|
|
AppImage:
|
|
runs-on: ubuntu-latest
|
|
needs: Distfiles
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: 'Build AppImage'
|
|
run: build-scripts/build-appimage
|
|
- name: 'Upload AppImage'
|
|
uses: actions/upload-artifact@v1
|
|
with:
|
|
name: distribution
|
|
path: distribution
|
|
Linux32:
|
|
runs-on: ubuntu-latest
|
|
needs: Distfiles
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: 'Linux 32-bit'
|
|
run: build-scripts/build-linux32
|
|
Fuzzers:
|
|
runs-on: ubuntu-latest
|
|
needs: Distfiles
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: 'Build Fuzzer'
|
|
run: build-scripts/build-fuzzer
|
|
Sanitizers:
|
|
runs-on: ubuntu-latest
|
|
needs: Distfiles
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: 'Sanitizer Tests'
|
|
run: build-scripts/test-sanitizers
|