name: CI on: push: branches: [master] pull_request: branches: [master] jobs: test-ubuntu: runs-on: ubuntu-latest strategy: fail-fast: false matrix: emacs-version: - '26.3' - '27.2' - '28.2' - '29.4' - 'snapshot' steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Emacs uses: purcell/setup-emacs@master with: version: ${{ matrix.emacs-version }} - name: Install Cask uses: conao3/setup-cask@master with: version: 'snapshot' - name: Install server build dependencies run: | sudo apt-get update sudo apt-get install -y make automake autoconf gcc g++ \ libpng-dev libpoppler-glib-dev libpoppler-private-dev \ libz-dev pkg-config - name: Compile epdfinfo server run: make autobuild - name: Install Elisp dependencies run: cask install - name: Run tests run: make test test-macos: runs-on: macos-latest env: HOMEBREW_NO_AUTO_UPDATE: 1 HOMEBREW_NO_INSTALL_CLEANUP: 1 steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Emacs uses: purcell/setup-emacs@master with: version: '29.4' - name: Install Cask uses: conao3/setup-cask@master with: version: 'snapshot' - name: Install server build dependencies run: | brew install automake autoconf poppler pkg-config gnu-sed echo "$(brew --prefix gnu-sed)/libexec/gnubin" >> $GITHUB_PATH - name: Compile epdfinfo server run: make autobuild - name: Install Elisp dependencies run: cask install - name: Run tests run: make test build-windows: runs-on: windows-latest defaults: run: shell: msys2 {0} steps: - name: Checkout uses: actions/checkout@v4 - name: Setup MSYS2 uses: msys2/setup-msys2@v2 with: msystem: MINGW64 update: true install: >- git base-devel autoconf automake mingw-w64-x86_64-toolchain mingw-w64-x86_64-libpng mingw-w64-x86_64-poppler mingw-w64-x86_64-imagemagick mingw-w64-x86_64-zlib mingw-w64-x86_64-openssl mingw-w64-x86_64-emacs - name: Install Cask run: git clone https://github.com/cask/cask ~/.cask - name: Compile epdfinfo server run: | export PATH="$HOME/.cask/bin:$PATH" make autobuild - name: Package Windows binaries run: | mkdir -p pack cp server/epdfinfo.exe pack/ ldd server/epdfinfo.exe | grep mingw | cut -d' ' -f3 | xargs -I {} cp {} pack/ cp /mingw64/bin/libcrypto*.dll pack/ || true cp /mingw64/bin/libssl*.dll pack/ || true - name: Upload Windows artifact uses: actions/upload-artifact@v4 with: name: epdfinfo-mingw64 path: pack/