diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml new file mode 100644 index 0000000..071796e --- /dev/null +++ b/.github/workflows/rust.yml @@ -0,0 +1,57 @@ +name: Rust + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +env: + CARGO_TERM_COLOR: always + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - name: Setup sccache + if: github.event_name != 'release' && github.event_name != 'workflow_dispatch' + uses: mozilla-actions/sccache-action@v0.0.6 + - name: Configure sccache + if: github.event_name != 'release' && github.event_name != 'workflow_dispatch' + run: | + echo "SCCACHE_GHA_ENABLED=true" >> $GITHUB_ENV + echo "RUSTC_WRAPPER=sccache" >> $GITHUB_ENV + - name: Install build dependencies + run: | + sudo apt-get update + sudo apt-get install -y cmake libjpeg-dev libfontconfig1-dev libopenjp2-7-dev libglib2.0-dev libnss3-dev + - name: Build newer poppler + run: | + wget https://poppler.freedesktop.org/poppler-23.12.0.tar.xz + tar xf poppler-23.12.0.tar.xz + cd poppler-23.12.0 + mkdir build && cd build + cmake .. -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_COMPILER_LAUNCHER=sccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=sccache \ + -DENABLE_UNSTABLE_API_ABI_HEADERS=ON \ + -DENABLE_GPGME=OFF \ + -DENABLE_QT5=OFF \ + -DENABLE_QT6=OFF \ + -DENABLE_BOOST=OFF \ + -DENABLE_SPLASH=OFF \ + -DENABLE_LIBCURL=OFF + make -j$(nproc) + sudo make install + sudo ldconfig + - uses: actions/checkout@v4 + - name: Clippy + run: cargo clippy -- -D warnings + - name: Check fmt + run: cargo fmt -- --check + - name: Run tests + run: cargo test + - name: Build + run: cargo build