From 90e4a4f7cfc5ab944f582c3189ecce968d53eaf0 Mon Sep 17 00:00:00 2001
From: h7x4 <h7x4@nani.wtf>
Date: Tue, 30 Apr 2024 17:50:31 +0200
Subject: [PATCH] wip

---
 .gitea/workflows/build-and-test.yml | 178 ++++++++++++++--------------
 .gitea/workflows/build-docs.yml     |  43 +++++++
 2 files changed, 134 insertions(+), 87 deletions(-)
 create mode 100644 .gitea/workflows/build-docs.yml

diff --git a/.gitea/workflows/build-and-test.yml b/.gitea/workflows/build-and-test.yml
index 873fc10..1a79090 100644
--- a/.gitea/workflows/build-and-test.yml
+++ b/.gitea/workflows/build-and-test.yml
@@ -6,105 +6,109 @@ on:
   pull_request:
 
 jobs:
-  build:
-    runs-on: ubuntu-latest-personal
-    steps:
-      - uses: actions/checkout@v3
+  # build:
+  #   runs-on: ubuntu-latest-personal
+  #   steps:
+  #     - uses: actions/checkout@v3
 
-      - name: Install latest nightly toolchain
-        uses: actions-rs/toolchain@v1
-        with:
-            toolchain: nightly
-            override: true
-            components: rustfmt, clippy
+  #     - name: Install latest nightly toolchain
+  #       uses: actions-rs/toolchain@v1
+  #       with:
+  #           toolchain: nightly
+  #           override: true
 
-      - name: Cache dependencies
-        uses: Swatinem/rust-cache@v2
+  #     - name: Cache dependencies
+  #       uses: Swatinem/rust-cache@v2
 
-      - name: Build
-        run: cargo build --all-features --verbose --release
+  #     - name: Build
+  #       run: cargo build --all-features --verbose --release
 
-  check:
-    runs-on: ubuntu-latest-personal
-    steps:
-      - uses: actions/checkout@v3
+  # check:
+  #   runs-on: ubuntu-latest-personal
+  #   steps:
+  #     - uses: actions/checkout@v3
 
-      - name: Install latest nightly toolchain
-        uses: actions-rs/toolchain@v1
-        with:
-            toolchain: nightly
-            override: true
-            components: rustfmt, clippy
+  #     - name: Install latest nightly toolchain
+  #       uses: actions-rs/toolchain@v1
+  #       with:
+  #           toolchain: nightly
+  #           override: true
+  #           components: rustfmt, clippy
 
-      - name: Cache dependencies
-        uses: Swatinem/rust-cache@v2
+  #     - name: Cache dependencies
+  #       uses: Swatinem/rust-cache@v2
 
-      - name: Check code format
-        run: cargo fmt -- --check
+  #     - name: Check code format
+  #       run: cargo fmt -- --check
 
-      - name: Check clippy
-        run: cargo clippy --all-features -- --deny warnings
+  #     - name: Check clippy
+  #       run: cargo clippy --all-features -- --deny warnings
 
-  test:
-    runs-on: ubuntu-latest-personal
-    steps:
-      - uses: actions/checkout@v3
-      - uses: cargo-bins/cargo-binstall@main
+  # test:
+  #   runs-on: ubuntu-latest-personal
+  #   steps:
+  #     - uses: actions/checkout@v3
+  #     - uses: cargo-bins/cargo-binstall@main
 
-      - name: Install latest nightly toolchain
-        uses: actions-rs/toolchain@v1
-        with:
-            toolchain: nightly
-            override: true
-            components: rustfmt, clippy, llvm-tools-preview
+  #     - name: Install mpv
+  #       run: apt-get update && apt-get install -y mpv
 
-      - name: Cache dependencies
-        uses: Swatinem/rust-cache@v2
+  #     - name: Install latest nightly toolchain
+  #       uses: actions-rs/toolchain@v1
+  #       with:
+  #           toolchain: nightly
+  #           override: true
+  #           components: llvm-tools-preview
 
-      - name: Create necessary directories
-        run: mkdir -p target/test-report
+  #     - name: Cache dependencies
+  #       uses: Swatinem/rust-cache@v2
 
-      - name: Run tests
-        run: cargo test --all-features --release -Z unstable-options --report-time --format json | tee target/test-report/test-report.json
-        env:
-          RUSTFLAGS: "-Cinstrument-coverage"
-          LLVM_PROFILE_FILE: "target/release/coverage/%p-%m.profraw"
-    
-      - name: Install markdown-test-report
-        run: cargo binstall -y markdown-test-report
+  #     - name: Create necessary directories
+  #       run: mkdir -p target/test-report
 
-      - name: Generate test report
-        run: markdown-test-report target/test-report/test-report.json target/test-report/test-report.md
+  #     - name: Run tests
+  #       run: |
+  #         cargo test --all-features --release --no-fail-fast -- -Zunstable-options --format json --report-time \
+  #           | tee target/test-report/test-report.json
+  #       env:
+  #         RUSTFLAGS: "-Cinstrument-coverage"
+  #         LLVM_PROFILE_FILE: "target/coverage/%p-%m.profraw"
 
-      - name: Upload test report
-        uses: actions/upload-artifact@v4
-        with:
-          name: test-report
-          path: target/test-report/test-report.md
-      
-      - name: Install grcov
-        run: cargo binstall -y grcov
-      
-      - name: Generate coverage report
-        run: |
-          grcov \
-            --source-dir . \
-            --binary-path ./target/release/deps/ \
-            --excl-start 'mod test* \{' \
-            --ignore 'tests/*' \
-            --ignore "*test.rs" \
-            --ignore "*tests.rs" \
-            --ignore "*github.com*" \
-            --ignore "*libcore*" \
-            --ignore "*rustc*" \
-            --ignore "*liballoc*" \
-            --ignore "*cargo*" \
-            -t html \
-            -o ./target/coverage/html \
-            target/coverage/prof
-      
-      - name: Upload coverage report
-        uses: actions/upload-artifact@v4
-        with:
-          name: coverage
-          path: target/coverage/html
+  #     - name: Install markdown-test-report
+  #       run: cargo binstall -y markdown-test-report
+
+  #     - name: Generate test report
+  #       run: markdown-test-report target/test-report/test-report.json --output target/test-report/test-report.md
+
+  #     - name: Upload test report
+  #       uses: actions/upload-artifact@v3
+  #       with:
+  #         name: test-report.md
+  #         path: target/test-report/test-report.md
+
+  #     - name: Install grcov
+  #       run: cargo binstall -y grcov
+
+  #     - name: Generate coverage report
+  #       run: |
+  #         grcov \
+  #           --source-dir . \
+  #           --binary-path ./target/release/deps/ \
+  #           --excl-start 'mod test* \{' \
+  #           --ignore 'tests/*' \
+  #           --ignore "*test.rs" \
+  #           --ignore "*tests.rs" \
+  #           --ignore "*github.com*" \
+  #           --ignore "*libcore*" \
+  #           --ignore "*rustc*" \
+  #           --ignore "*liballoc*" \
+  #           --ignore "*cargo*" \
+  #           -t html \
+  #           -o ./target/coverage/html \
+  #           target/coverage/
+
+  #     - name: Upload coverage report
+  #       uses: actions/upload-artifact@v3
+  #       with:
+  #         name: coverage
+  #         path: target/coverage/html
diff --git a/.gitea/workflows/build-docs.yml b/.gitea/workflows/build-docs.yml
new file mode 100644
index 0000000..5003005
--- /dev/null
+++ b/.gitea/workflows/build-docs.yml
@@ -0,0 +1,43 @@
+name: "Build docs"
+on:
+  push:
+    # branches:
+    #   - master
+jobs:
+  docs:
+    runs-on: ubuntu-latest-personal
+    steps:
+      - uses: actions/checkout@v3
+
+      - name: Install latest nightly toolchain
+        uses: actions-rs/toolchain@v1
+        with:
+            toolchain: nightly
+            override: true
+
+      - name: Cache dependencies
+        uses: Swatinem/rust-cache@v2
+
+      - name: Build docs
+        run: cargo doc --all-features --document-private-items --release
+
+      - name: Install rsync
+        run: apt-get update && apt-get install -y rsync
+
+      - name: Install SSH key
+        run: |
+          mkdir -p ~/.ssh
+          cat <<EOF >~/.ssh/key
+          ${{ secrets.OYSTEIKT_GITEA_WEBDOCS_SSH_KEY }}
+          EOF
+          chmod 600 ~/.ssh/key
+
+      - name: Deploy docs
+        # run: rsync --archive --compress --verbose --mkpath --rsh="ssh -oBatchMode=yes -i ~/.ssh/key" "target/docs" "oysteikt@microbel.pvv.ntnu.no:${{ gitea.repository }}/${{ gitea.ref }}"
+        run: rsync --archive --compress --verbose --mkpath --rsh="ssh -oBatchMode=yes -oStrictHostKeyChecking=accept-new -i ~/.ssh/key" "target/doc/*" "oysteikt@microbel.pvv.ntnu.no:mpvipc/main/"
+
+      # - name: Upload docs
+      #   uses: actions/upload-artifact@v3
+      #   with:
+      #     name: docs
+      #     path: target/doc
\ No newline at end of file