From aa28d7c54a8ef035534c17f2a18a585136fa2671 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Marcos?= Date: Fri, 18 Apr 2025 02:37:23 -0300 Subject: [PATCH] move adjustments --- .../build-artifacts-and-run-tests.yml | 2 +- .../draft-release-automatic-trigger.yml | 2 +- Cargo.toml | 2 +- build.rs | 10 +-- scripts/package-release-assets.sh | 61 ++++++++++++++----- 5 files changed, 50 insertions(+), 27 deletions(-) diff --git a/.github/workflows/build-artifacts-and-run-tests.yml b/.github/workflows/build-artifacts-and-run-tests.yml index 26f8824..16e7fff 100644 --- a/.github/workflows/build-artifacts-and-run-tests.yml +++ b/.github/workflows/build-artifacts-and-run-tests.yml @@ -136,7 +136,7 @@ jobs: run: | ${{ env.CARGO }} +stable build --release --target ${{ matrix.target }} $EXTRA_CARGO_FLAGS env: - OUCH_ARTIFACTS_FOLDER: artifacts + OUCH_ARTIFACTS_FOLDER: man-page-and-completions-artifacts - name: Upload release artifacts if: | diff --git a/.github/workflows/draft-release-automatic-trigger.yml b/.github/workflows/draft-release-automatic-trigger.yml index 9f341cb..fd45837 100644 --- a/.github/workflows/draft-release-automatic-trigger.yml +++ b/.github/workflows/draft-release-automatic-trigger.yml @@ -34,4 +34,4 @@ jobs: uses: softprops/action-gh-release@v2 with: draft: true - files: assets/ouch-* + files: output_assets/ouch-* diff --git a/Cargo.toml b/Cargo.toml index a9f3ba8..e8cc8e6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -70,7 +70,7 @@ regex = "1.10.4" test-strategy = "0.4.0" [features] -default = ["use_zlib", "use_zstd_thin", "unrar"] +default = ["unrar", "use_zlib", "use_zstd_thin"] use_zlib = ["flate2/zlib", "gzp/deflate_zlib", "zip/deflate-zlib"] use_zstd_thin = ["zstd/thin"] allow_piped_choice = [] diff --git a/build.rs b/build.rs index c7a1f91..c023757 100644 --- a/build.rs +++ b/build.rs @@ -5,18 +5,12 @@ /// Set `OUCH_ARTIFACTS_FOLDER` to the name of the destination folder: /// /// ```sh -/// OUCH_ARTIFACTS_FOLDER=my-folder cargo build +/// OUCH_ARTIFACTS_FOLDER=man-page-and-completions-artifacts cargo build /// ``` /// -/// All completion files will be generated inside of the folder "my-folder". +/// All completion files will be generated inside of the folder "man-page-and-completions-artifacts". /// /// If the folder does not exist, it will be created. -/// -/// We recommend you naming this folder "artifacts" for the sake of consistency. -/// -/// ```sh -/// OUCH_ARTIFACTS_FOLDER=artifacts cargo build -/// ``` use std::{ env, fs::{create_dir_all, File}, diff --git a/scripts/package-release-assets.sh b/scripts/package-release-assets.sh index a860328..69aac6f 100755 --- a/scripts/package-release-assets.sh +++ b/scripts/package-release-assets.sh @@ -1,28 +1,57 @@ #!/usr/bin/env bash set -e +mkdir -p output_assets cd downloaded_artifacts -mkdir ../assets -for input_dir in ouch-*; do +TARGETS=( + "aarch64-pc-windows-msvc" + "aarch64-unknown-linux-gnu" + "aarch64-unknown-linux-musl" + "armv7-unknown-linux-gnueabihf" + "armv7-unknown-linux-musleabihf" + "x86_64-apple-darwin" + "x86_64-pc-windows-gnu" + "x86_64-pc-windows-msvc" + "x86_64-unknown-linux-gnu" + "x86_64-unknown-linux-musl" +) +DEFAULT_FEATURES="unrar+use_zlib+use_zstd_thin" + +for target in "${TARGETS[@]}"; do + input_dir="ouch-${target}-${DEFAULT_FEATURES}" + + if [ ! -d "$input_dir" ]; then + echo "ERROR: Could not find artifact directory for $target with default features ($input_dir)" + exit 1 + fi + + echo "Processing $input_dir" + cp ../{README.md,LICENSE,CHANGELOG.md} "$input_dir" - mkdir "$input_dir/man" - mkdir "$input_dir/artifacts" + mkdir -p "$input_dir/man" + mkdir -p "$input_dir/completions" - mv "$input_dir"/artifacts/*.1 "$input_dir/man" - mv "$input_dir"/artifacts/* "$input_dir/completions" - rm -r "$input_dir/artifacts" + mv "$input_dir"/man-page-and-completions-artifacts/*.1 "$input_dir/man" + mv "$input_dir"/man-page-and-completions-artifacts/* "$input_dir/completions" + rm -r "$input_dir/man-page-and-completions-artifacts" - if [[ "$input_dir" = *.exe ]]; then - target=${input_dir%.exe} - mv "$input_dir/target/${target/ouch-/}/release/ouch.exe" "$input_dir" - rm -r "$input_dir/target" - mv "$input_dir" "$target" - zip -r "../assets/$target.zip" "$target" + output_name="ouch-${target}" + + if [[ "$target" == *"-windows-"* ]]; then + mv "$input_dir/target/$target/release/ouch.exe" "$input_dir" + rm -rf "$input_dir/target" + + zip -r "../output_assets/${output_name}.zip" "$input_dir" + echo "Created output_assets/${output_name}.zip" else - mv "$input_dir/target/${input_dir/ouch-/}/release/ouch" "$input_dir" - rm -r "$input_dir/target" + mv "$input_dir/target/$target/release/ouch" "$input_dir" + rm -rf "$input_dir/target" chmod +x "$input_dir/ouch" - tar czf "../assets/$input_dir.tar.gz" "$input_dir" + + tar czf "../output_assets/${output_name}.tar.gz" "$input_dir" + echo "Created output_assets/${output_name}.tar.gz" fi done + +echo "Done."