Rust implementation of OCI Distribution Spec with granular access control

fix: pre-download Swagger UI with retries to avoid corrupted downloads

+8
+8
.tangled/workflows/build.yml
··· 20 20 - coreutils 21 21 - patchelf 22 22 - curl 23 + - unzip 23 24 24 25 environment: 25 26 CARGO_HOME: ".cargo" ··· 31 32 32 33 - name: "Lint with Clippy" 33 34 command: | 35 + # Pre-download Swagger UI with retries to avoid corrupted downloads 36 + SWAGGER_URL="https://github.com/swagger-api/swagger-ui/archive/refs/tags/v5.17.14.zip" 37 + curl -L --retry 5 --retry-delay 3 -o /tmp/swagger-ui.zip "$SWAGGER_URL" 38 + unzip -t /tmp/swagger-ui.zip # Verify the download is valid 39 + export SWAGGER_UI_DOWNLOAD_URL="file:///tmp/swagger-ui.zip" 34 40 cargo clippy --all-targets --all-features -- -D warnings 35 41 36 42 - name: "Run tests" 37 43 command: | 44 + export SWAGGER_UI_DOWNLOAD_URL="file:///tmp/swagger-ui.zip" 38 45 cargo test 39 46 40 47 - name: "Build Rust binary" 41 48 command: | 49 + export SWAGGER_UI_DOWNLOAD_URL="file:///tmp/swagger-ui.zip" 42 50 cargo build --release 43 51 ls -lh target/release/grain target/release/grainctl 44 52