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: ๐Ÿ“Ž Clippy run: cargo clippy --all --tests --features=rss,indicatif,audiotag -- -D warnings - name: ๐Ÿงช Test run: | printf "$RUSTYPIPE_CACHE" > rustypipe_cache.json cargo nextest run --config-file ~/.config/nextest.toml --profile ci --retries 2 --features rss --workspace env: ALL_PROXY: "http://warpproxy:8124" RUSTYPIPE_CACHE: "${{ secrets.RUSTYPIPE_CACHE }}" YT_AUTHENTICATED: "${{ github.event_name != 'pull_request' }}" # no access to secrets for PRs - 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"}}'