diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..9744d83 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,28 @@ +name: Publish to crates.io + +on: + push: + tags: + - "v*" + +env: + CARGO_TERM_COLOR: always + +jobs: + publish: + name: Publish to crates.io + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Set up Rust toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + + - name: Publish rmrfrs to crates.io + run: cargo publish --manifest-path Cargo.toml --token ${{ secrets.CARGO_REGISTRY_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..f4816c2 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,78 @@ +name: Release + +on: + push: + tags: + - "v*" + +env: + CARGO_TERM_COLOR: always + +jobs: + release: + name: "Release" + runs-on: ${{ matrix.os }} + strategy: + matrix: + include: + - os: ubuntu-latest + artifact_name: rmrfrs + asset_name: rmrfrs-linux-gnu-amd64 + - os: windows-latest + artifact_name: rmrfrs.exe + asset_name: rmrfrs-windows-amd64.exe + - os: macos-latest + artifact_name: rmrfrs + asset_name: rmrfrs-darwin-amd64 + steps: + - name: Checkout repository + uses: actions/checkout@v2 + - name: Set up Rust toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + - name: Build release + run: cargo build --release --locked + - name: Set prerelease flag (non-Windows) + if: runner.os != 'Windows' + run: | + if [ $(echo ${{ github.ref }} | grep "rc") ]; then + echo "PRERELEASE=true" >> $GITHUB_ENV + echo "PRERELEASE=true" + else + echo "PRERELEASE=false" >> $GITHUB_ENV + echo "PRERELEASE=false" + fi + echo $PRERELEASE + VERSION=$(echo ${{ github.ref }} | sed 's/refs\/tags\///g') + echo "VERSION=$VERSION" >> $GITHUB_ENV + echo "VERSION=$VERSION" + - name: Set prerelease flag (Windows) + if: runner.os == 'Windows' + shell: powershell + run: | + $full = "${{ github.ref }}" + + if ( $full -like '*rc*' ) { + echo "PRERELEASE=true" >> $env:GITHUB_ENV + echo "PRERELEASE=true" + } else { + echo "PRERELEASE=false" >> $env:GITHUB_ENV + echo "PRERELEASE=false" + } + + $trimmed = $full -replace 'refs/tags/','' + echo "VERSION=$trimmed" >> $env:GITHUB_ENV + echo "VERSION=$trimmed" + - name: Upload release assets + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.PERSONAL_GITHUB_TOKEN }} + file: target/release/${{ matrix.artifact_name }} + asset_name: ${{ matrix.asset_name }} + tag: ${{ github.ref }} + prerelease: ${{ env.PRERELEASE }} + release_name: "rmrfrs ${{ env.VERSION }}" + body: "Please refer to **[CHANGELOG.md](https://github.com/trinhminhtriet/rmrfrs/blob/master/CHANGELOG.md)** for information on this release." diff --git a/Cargo.lock b/Cargo.lock index 1b2b0d7..40b1c6d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -269,7 +269,7 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "rmrfrs" -version = "0.8.4" +version = "0.8.5" dependencies = [ "clap", "clap_complete", diff --git a/rmrfrs-ui/Cargo.toml b/rmrfrs-ui/Cargo.toml index b240751..8f1bf1f 100644 --- a/rmrfrs-ui/Cargo.toml +++ b/rmrfrs-ui/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rmrfrs-ui" -version = "0.8.4" +version = "0.8.5" authors = ["Triet Trinh "] description = """ rmrfrs-ui is a filesystem cleaning tool that recursively searches directories diff --git a/rmrfrs/Cargo.toml b/rmrfrs/Cargo.toml index d96f486..8f2ed0b 100644 --- a/rmrfrs/Cargo.toml +++ b/rmrfrs/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rmrfrs" -version = "0.8.4" +version = "0.8.5" authors = ["Triet Trinh "] description = """ rmrfrs is a powerful filesystem cleaning tool designed to optimize storage by identifying and removing unnecessary files within known project structures.