From 2d43c1e513c822a733cec493dcf11d127efba5f2 Mon Sep 17 00:00:00 2001 From: Kreijstal Date: Sat, 16 Nov 2024 11:27:55 +0100 Subject: [PATCH 1/6] Create rust.yml Adding sccache for speedup --- .github/workflows/rust.yml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 .github/workflows/rust.yml diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml new file mode 100644 index 0000000..d48ee46 --- /dev/null +++ b/.github/workflows/rust.yml @@ -0,0 +1,30 @@ +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 + - uses: actions/checkout@v4 + - name: Build + run: cargo build --verbose + - name: Run tests + run: cargo test --verbose From 1402db3eba162fe1e86f3df41ede1b1ef880ef66 Mon Sep 17 00:00:00 2001 From: Kreijstal Date: Sat, 16 Nov 2024 12:12:04 +0100 Subject: [PATCH 2/6] only libpoppler 23 is supported which doesn't come with ubuntu --- .github/workflows/rust.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index d48ee46..d17684a 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -23,6 +23,29 @@ jobs: 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: Build run: cargo build --verbose From e3ccb26d66596e432ba2462cf92b483eb31fee97 Mon Sep 17 00:00:00 2001 From: Kreijstal Date: Sun, 17 Nov 2024 07:46:37 +0100 Subject: [PATCH 3/6] Update .github/workflows/rust.yml Removing verbose it's okay, I'm not sure if cargo test tests linking the same binary as cargo build. So I'm not sure if it should be tested, furthermore maybe it makes sense to test in release mode rather than debug mode? Co-authored-by: June <61218022+itsjunetime@users.noreply.github.com> --- .github/workflows/rust.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index d17684a..542bc09 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -50,4 +50,4 @@ jobs: - name: Build run: cargo build --verbose - name: Run tests - run: cargo test --verbose + run: cargo test From 34b42cb1b23861e6adabab06d514fb44a4530fd5 Mon Sep 17 00:00:00 2001 From: Kreijstal Date: Sun, 17 Nov 2024 09:12:08 +0100 Subject: [PATCH 4/6] Update .github/workflows/rust.yml change build for clippy Co-authored-by: June <61218022+itsjunetime@users.noreply.github.com> --- .github/workflows/rust.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 542bc09..3aacd44 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -47,7 +47,7 @@ jobs: sudo make install sudo ldconfig - uses: actions/checkout@v4 - - name: Build - run: cargo build --verbose + - name: Clippy + run: cargo clippy - name: Run tests run: cargo test From eb5ee99eec04fd6015a9362b43d2246f74078d0e Mon Sep 17 00:00:00 2001 From: June <61218022+itsjunetime@users.noreply.github.com> Date: Tue, 19 Nov 2024 21:22:57 -0700 Subject: [PATCH 5/6] Add build step back to ensure linking works --- .github/workflows/rust.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 3aacd44..c239bed 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -51,3 +51,5 @@ jobs: run: cargo clippy - name: Run tests run: cargo test + - name: Build + run: cargo build From 03c2f381d981ae9fce4edbaeb9bcbd8d26d43108 Mon Sep 17 00:00:00 2001 From: June <61218022+itsjunetime@users.noreply.github.com> Date: Tue, 19 Nov 2024 21:23:21 -0700 Subject: [PATCH 6/6] Add format check and elevate clippy warnings to errors --- .github/workflows/rust.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index c239bed..071796e 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -48,7 +48,9 @@ jobs: sudo ldconfig - uses: actions/checkout@v4 - name: Clippy - run: cargo clippy + run: cargo clippy -- -D warnings + - name: Check fmt + run: cargo fmt -- --check - name: Run tests run: cargo test - name: Build