From 92635d120316dc3d3b603649c8713b50a753d32d Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Fri, 16 Oct 2020 17:33:12 -0400 Subject: Add GitHub Actions workflow --- .github/workflows/main.yml | 108 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 .github/workflows/main.yml (limited to '.github') 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 -- cgit v1.2.3-54-g00ecf