aboutsummaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2020-10-16 23:33:12 +0200
committerJay Berkenbilt <ejb@ql.org>2020-10-16 23:34:21 +0200
commit92635d120316dc3d3b603649c8713b50a753d32d (patch)
tree741e9a7977bd3cdc19db1cd4b74bf5a35337402f /.github
parent1019ed5758d97da4a3376da3af1f38a7b99dc93f (diff)
downloadqpdf-92635d120316dc3d3b603649c8713b50a753d32d.tar.zst
Add GitHub Actions workflow
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/main.yml108
1 files changed, 108 insertions, 0 deletions
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
new file mode 100644
index 00000000..8c49f7bf
--- /dev/null
+++ b/.github/workflows/main.yml
@@ -0,0 +1,108 @@
+name: QPDF Build
+env:
+ QTEST_COLOR: 1
+on:
+ push:
+ branches:
+ - main
+ - master
+ - build
+ pull_request:
+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
+ 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:
+ # If updating this, see note in TODO about MSVC wildcard expansion.
+ runs-on: windows-2019
+ 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: '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-10.15
+ needs: Distfiles
+ steps:
+ - uses: actions/checkout@v2
+ - name: 'Download distribution files'
+ uses: actions/download-artifact@v2
+ with:
+ name: distfiles
+ - 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