chore(deps): lock file maintenance (#1077) #2634
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| jobs: | |
| check: | |
| if: ${{ always() && github.event_name == 'pull_request' }} | |
| needs: | |
| - build | |
| - clippy | |
| - pre-commit | |
| - rustfmt | |
| - udeps | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: re-actors/alls-green@release/v1 | |
| with: | |
| jobs: ${{ toJSON(needs) }} | |
| build: | |
| strategy: | |
| matrix: | |
| include: | |
| - target: aarch64-apple-darwin | |
| runner: macos-15 | |
| cross: false | |
| - target: aarch64-pc-windows-msvc | |
| runner: windows-11-arm | |
| cross: false | |
| executable: proxy-scraper-checker.exe | |
| - target: aarch64-unknown-linux-gnu | |
| runner: ubuntu-24.04-arm | |
| cross: false | |
| - target: i686-pc-windows-msvc | |
| runner: windows-2025 | |
| cross: false | |
| executable: proxy-scraper-checker.exe | |
| - target: x86_64-apple-darwin | |
| runner: macos-15 | |
| cross: false | |
| - target: x86_64-pc-windows-msvc | |
| runner: windows-2025 | |
| cross: false | |
| executable: proxy-scraper-checker.exe | |
| - target: x86_64-unknown-linux-gnu | |
| runner: ubuntu-24.04 | |
| cross: false | |
| - target: aarch64-linux-android | |
| runner: ubuntu-24.04 | |
| cross: true | |
| # - target: aarch64-unknown-linux-gnu | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| # - target: aarch64-unknown-linux-gnu:centos | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| - target: aarch64-unknown-linux-musl | |
| runner: ubuntu-24.04 | |
| cross: true | |
| # - target: aarch64_be-unknown-linux-gnu | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| - target: arm-linux-androideabi | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: arm-unknown-linux-gnueabi | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: arm-unknown-linux-gnueabihf | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: arm-unknown-linux-musleabi | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: arm-unknown-linux-musleabihf | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: armv5te-unknown-linux-gnueabi | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: armv5te-unknown-linux-musleabi | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: armv7-linux-androideabi | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: armv7-unknown-linux-gnueabi | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: armv7-unknown-linux-gnueabihf | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: armv7-unknown-linux-musleabi | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: armv7-unknown-linux-musleabihf | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: i586-unknown-linux-gnu | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: i586-unknown-linux-musl | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: i686-unknown-freebsd | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: i686-linux-android | |
| runner: ubuntu-24.04 | |
| cross: true | |
| # - target: i686-pc-windows-gnu | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| - target: i686-unknown-linux-gnu | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: loongarch64-unknown-linux-gnu | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: loongarch64-unknown-linux-musl | |
| runner: ubuntu-24.04 | |
| cross: true | |
| # - target: mips-unknown-linux-gnu | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| # - target: mips-unknown-linux-musl | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| # - target: mips64-unknown-linux-gnuabi64 | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| # - target: mips64-unknown-linux-muslabi64 | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| # - target: mips64el-unknown-linux-gnuabi64 | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| # - target: mips64el-unknown-linux-muslabi64 | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| # - target: mipsel-unknown-linux-gnu | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| # - target: mipsel-unknown-linux-musl | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| - target: powerpc-unknown-linux-gnu | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: powerpc64-unknown-linux-gnu | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: powerpc64le-unknown-linux-gnu | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: riscv64gc-unknown-linux-gnu | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: riscv64gc-unknown-linux-musl | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: s390x-unknown-linux-gnu | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: sparc64-unknown-linux-gnu | |
| runner: ubuntu-24.04 | |
| cross: true | |
| # - target: sparcv9-sun-solaris | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| # - target: thumbv6m-none-eabi | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| # - target: thumbv7em-none-eabi | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| # - target: thumbv7em-none-eabihf | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| # - target: thumbv7m-none-eabi | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| - target: thumbv7neon-linux-androideabi | |
| runner: ubuntu-24.04 | |
| cross: true | |
| - target: thumbv7neon-unknown-linux-gnueabihf | |
| runner: ubuntu-24.04 | |
| cross: true | |
| # - target: thumbv8m.base-none-eabi | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| # - target: thumbv8m.main-none-eabi | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| # - target: thumbv8m.main-none-eabihf | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| # - target: wasm32-unknown-emscripten | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| - target: x86_64-linux-android | |
| runner: ubuntu-24.04 | |
| cross: true | |
| # - target: x86_64-pc-windows-gnu | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| # - target: x86_64-pc-solaris | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| - target: x86_64-unknown-freebsd | |
| runner: ubuntu-24.04 | |
| cross: true | |
| # - target: x86_64-unknown-dragonfly | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| - target: x86_64-unknown-illumos | |
| runner: ubuntu-24.04 | |
| cross: true | |
| # - target: x86_64-unknown-linux-gnu | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| # - target: x86_64-unknown-linux-gnu:centos | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| - target: x86_64-unknown-linux-musl | |
| runner: ubuntu-24.04 | |
| cross: true | |
| # - target: x86_64-unknown-netbsd | |
| # runner: ubuntu-24.04 | |
| # cross: true | |
| fail-fast: false | |
| runs-on: ${{ matrix.runner }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| with: | |
| toolchain: beta | |
| target: ${{ matrix.target }} | |
| cache-key: ${{ matrix.target }} | |
| - if: ${{ matrix.cross }} | |
| run: cargo +beta install cross --git https://github.com/cross-rs/cross | |
| env: | |
| RUSTFLAGS: "" | |
| - if: ${{ matrix.cross }} | |
| run: cross +beta build --features tui --release --target '${{ matrix.target }}' --locked | |
| - if: ${{ !matrix.cross }} | |
| run: cargo +beta build --features tui --release --target '${{ matrix.target }}' --locked | |
| - run: mkdir dist | |
| - run: echo -n '${{ github.sha }}' > dist/commit-sha.txt | |
| shell: bash | |
| - run: mv config.toml dist/ | |
| - run: mv LICENSE dist/ | |
| - run: mv target/${{ matrix.target}}/release/${{ matrix.executable || 'proxy-scraper-checker' }} dist/ | |
| - uses: actions/upload-artifact@v7 | |
| with: | |
| name: proxy-scraper-checker-binary-${{ matrix.target }} | |
| path: dist/ | |
| if-no-files-found: error | |
| build-docker: | |
| if: ${{ github.event_name != 'pull_request' }} | |
| permissions: | |
| packages: write | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - platform: "linux/386" | |
| tag: "386" | |
| runner: ubuntu-24.04 | |
| - platform: "linux/amd64" | |
| tag: "amd64" | |
| runner: ubuntu-24.04 | |
| - platform: "linux/arm/v7" | |
| tag: "arm-v7" | |
| runner: ubuntu-24.04-arm | |
| - platform: "linux/arm64/v8" | |
| tag: "arm64-v8" | |
| runner: ubuntu-24.04-arm | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - id: meta | |
| uses: docker/metadata-action@v6 | |
| with: | |
| images: ghcr.io/${{ github.repository }} | |
| tags: type=raw,value=${{ github.sha }}-${{ matrix.tag }} | |
| - uses: docker/login-action@v4 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - uses: docker/setup-buildx-action@v4 | |
| - id: push | |
| env: | |
| DOCKER_BUILD_RECORD_UPLOAD: false | |
| uses: docker/build-push-action@v7 | |
| with: | |
| cache-from: type=gha | |
| cache-to: type=gha,mode=max | |
| labels: ${{ steps.meta.outputs.labels }} | |
| platforms: ${{ matrix.platform }} | |
| provenance: false | |
| push: true | |
| tags: ${{ steps.meta.outputs.tags }} | |
| upload-docker-manifest: | |
| needs: | |
| - build-docker | |
| runs-on: ubuntu-24.04 | |
| permissions: | |
| packages: write | |
| steps: | |
| - uses: docker/login-action@v4 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - run: > | |
| docker manifest create ghcr.io/${{ github.repository }}:${{ github.sha }} | |
| --amend ghcr.io/${{ github.repository }}:${{ github.sha }}-386 | |
| --amend ghcr.io/${{ github.repository }}:${{ github.sha }}-amd64 | |
| --amend ghcr.io/${{ github.repository }}:${{ github.sha }}-arm-v7 | |
| --amend ghcr.io/${{ github.repository }}:${{ github.sha }}-arm64-v8 | |
| - run: docker manifest push ghcr.io/${{ github.repository }}:${{ github.sha }} | |
| upload-docker-prebuilt: | |
| needs: | |
| - upload-docker-manifest | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| matrix: | |
| platform: | |
| - "386" | |
| - "amd64" | |
| - "arm-v7" | |
| - "arm64-v8" | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - run: mkdir -p dist | |
| - run: echo -n '${{ github.sha }}' > dist/commit-sha.txt | |
| - run: mv {out,compose.yaml,config.toml,LICENSE} dist/ | |
| - name: Create Dockerfile | |
| run: | | |
| cat << 'EOF' > dist/Dockerfile | |
| # syntax=docker.io/docker/dockerfile:1 | |
| FROM ghcr.io/${{ github.repository }}:${{ github.sha }} | |
| ARG \ | |
| UID=1000 \ | |
| GID=1000 | |
| USER root | |
| RUN (getent group "${GID}" || groupmod --gid "${GID}" app) \ | |
| && usermod --uid "${UID}" --gid "${GID}" app | |
| USER app | |
| EOF | |
| - uses: actions/upload-artifact@v7 | |
| with: | |
| name: proxy-scraper-checker-docker-${{ matrix.platform }} | |
| path: dist/ | |
| if-no-files-found: error | |
| include-hidden-files: true | |
| upload-docker-src: | |
| needs: | |
| - build-docker | |
| strategy: | |
| matrix: | |
| platform: | |
| - "ppc64le" | |
| - "riscv64" | |
| - "s390x" | |
| fail-fast: false | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - run: mkdir -p dist | |
| - run: echo -n '${{ github.sha }}' > dist/commit-sha.txt | |
| - run: mv {out,src,Cargo.lock,Cargo.toml,compose.yaml,config.toml,Dockerfile,LICENSE} dist/ | |
| - uses: actions/upload-artifact@v7 | |
| with: | |
| name: proxy-scraper-checker-docker-${{ matrix.platform }} | |
| path: dist/ | |
| if-no-files-found: error | |
| include-hidden-files: true | |
| clippy: | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| matrix: | |
| include: | |
| - features: "--features tui" | |
| target: aarch64-apple-darwin,aarch64-pc-windows-msvc,aarch64-unknown-linux-gnu,i686-pc-windows-msvc,x86_64-apple-darwin,x86_64-pc-windows-msvc,x86_64-unknown-linux-gnu,aarch64-linux-android,aarch64-unknown-linux-musl,arm-linux-androideabi,arm-unknown-linux-gnueabi,arm-unknown-linux-gnueabihf,arm-unknown-linux-musleabi,arm-unknown-linux-musleabihf,armv5te-unknown-linux-gnueabi,armv5te-unknown-linux-musleabi,armv7-linux-androideabi,armv7-unknown-linux-gnueabi,armv7-unknown-linux-gnueabihf,armv7-unknown-linux-musleabi,armv7-unknown-linux-musleabihf,i586-unknown-linux-gnu,i586-unknown-linux-musl,i686-unknown-freebsd,i686-linux-android,i686-unknown-linux-gnu,loongarch64-unknown-linux-gnu,loongarch64-unknown-linux-musl,powerpc-unknown-linux-gnu,powerpc64-unknown-linux-gnu,powerpc64le-unknown-linux-gnu,riscv64gc-unknown-linux-gnu,riscv64gc-unknown-linux-musl,s390x-unknown-linux-gnu,sparc64-unknown-linux-gnu,thumbv7neon-linux-androideabi,thumbv7neon-unknown-linux-gnueabihf,x86_64-linux-android,x86_64-unknown-freebsd,x86_64-unknown-illumos,x86_64-unknown-linux-musl | |
| - features: "" | |
| target: i686-unknown-linux-gnu,x86_64-unknown-linux-gnu,armv7-unknown-linux-gnueabihf,aarch64-unknown-linux-gnu,powerpc64le-unknown-linux-gnu,riscv64gc-unknown-linux-gnu,s390x-unknown-linux-gnu | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| with: | |
| toolchain: beta | |
| target: ${{ matrix.target }} | |
| components: clippy | |
| cache-key: x86_64-unknown-linux-gnu | |
| - run: cargo +beta clippy ${{ matrix.features }} -- -Dwarnings | |
| pre-commit: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - uses: astral-sh/setup-uv@v7 | |
| with: | |
| enable-cache: false | |
| - run: uv tool run --no-cache --python 3.14 prek run --all-files --show-diff-on-failure | |
| env: | |
| RUFF_OUTPUT_FORMAT: github | |
| rustfmt: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| with: | |
| toolchain: nightly | |
| components: rustfmt | |
| cache-key: x86_64-unknown-linux-gnu | |
| - run: cargo +nightly fmt --check | |
| udeps: | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| matrix: | |
| features: | |
| - "" | |
| - "--features tui" | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| with: | |
| toolchain: nightly | |
| cache-key: x86_64-unknown-linux-gnu | |
| - run: cargo +nightly install --locked cargo-udeps | |
| - run: cargo +nightly udeps ${{ matrix.features }} |