name: CI on: push: branches: ["main"] pull_request: jobs: Test: runs-on: cimaster-latest services: warpproxy: image: thetadev256/warpproxy env: WARP_DEVICE_ID: ${{ secrets.WARP_DEVICE_ID }} WARP_ACCESS_TOKEN: ${{ secrets.WARP_ACCESS_TOKEN }} WARP_LICENSE_KEY: ${{ secrets.WARP_LICENSE_KEY }} WARP_PRIVATE_KEY: ${{ secrets.WARP_PRIVATE_KEY }} steps: - name: ๐Ÿ“ฆ Checkout repository uses: actions/checkout@v4 - name: ๐Ÿฆ€ Setup Rust cache uses: https://github.com/Swatinem/rust-cache@v2 with: cache-on-failure: "true" - name: Download rustypipe-botguard run: | TARGET=$(rustc --version --verbose | grep "host:" | sed -e 's/^host: //') cd ~ curl -SsL -o rustypipe-botguard.tar.xz "https://codeberg.org/ThetaDev/rustypipe-botguard/releases/download/v0.1.1/rustypipe-botguard-v0.1.1-${TARGET}.tar.xz" cd /usr/local/bin sudo tar -xJf ~/rustypipe-botguard.tar.xz rm ~/rustypipe-botguard.tar.xz rustypipe-botguard --version - name: ๐Ÿ“Ž Clippy run: | cargo clippy --all --tests --features=rss,userdata,indicatif,audiotag -- -D warnings cargo clippy --package=rustypipe --tests -- -D warnings cargo clippy --package=rustypipe-downloader -- -D warnings cargo clippy --package=rustypipe-cli -- -D warnings cargo clippy --package=rustypipe-cli --features=timezone -- -D warnings - name: ๐Ÿงช Test run: cargo nextest run --config-file ~/.config/nextest.toml --profile ci --retries 2 --features rss,userdata --workspace -- --skip 'user_data::' env: ALL_PROXY: "http://warpproxy:8124" - name: Move test report if: always() run: mv target/nextest/ci/junit.xml junit.xml || true - name: ๐Ÿ’Œ Upload test report if: always() uses: https://code.forgejo.org/forgejo/upload-artifact@v4 with: name: test path: | junit.xml rustypipe_reports - name: ๐Ÿ”— Artifactview PR comment if: ${{ always() && github.event_name == 'pull_request' }} run: | if [[ "$GITEA_ACTIONS" == "true" ]]; then RUN_NUMBER="$GITHUB_RUN_NUMBER"; else RUN_NUMBER="$GITHUB_RUN_ID"; fi curl -SsL --fail-with-body -w "\n" -X POST https://av.thetadev.de/.well-known/api/prComment -H "Content-Type: application/json" \ --data '{"url": "'"$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$RUN_NUMBER"'", "pr": ${{ github.event.number }}, "artifact_titles": {"test":"๐Ÿงช Test report"}, "artifact_paths": {"test":"/junit.xml?viewer=1"}}'