From 39ff2502fceb93d109b4217cf80bce40d07252ea Mon Sep 17 00:00:00 2001 From: radek Date: Sun, 21 Jul 2024 11:41:50 +0000 Subject: [PATCH 1/3] add build validation action --- .github/build-validation.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 .github/build-validation.yml diff --git a/.github/build-validation.yml b/.github/build-validation.yml new file mode 100644 index 0000000..f6f14b5 --- /dev/null +++ b/.github/build-validation.yml @@ -0,0 +1,25 @@ +name: Build validation +on: [pull_request] + +jobs: + build: + name: build-${{matrix.os}} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macOS-latest] + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + + - name: Build + run: cargo build + + - name: Check formatting + run: cargo fmt --all -- --check + + - name: Check clippy + run: cargo clippy --all-targets --all-features -- -D warnings + + - name: Check tests + run: cargo test --all-features From afb2af1f1b7df407336d16a1c65c8fae9ec6df7c Mon Sep 17 00:00:00 2001 From: radek Date: Sun, 21 Jul 2024 11:42:09 +0000 Subject: [PATCH 2/3] add release action --- .github/binary-release.yml | 99 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 .github/binary-release.yml diff --git a/.github/binary-release.yml b/.github/binary-release.yml new file mode 100644 index 0000000..27ba088 --- /dev/null +++ b/.github/binary-release.yml @@ -0,0 +1,99 @@ +name: Release + +on: + push: + tags: + - "[0-9]+.[0-9]+.[0-9]+" + +jobs: + release: + name: Release - ${{ matrix.platform.release_for }} + strategy: + matrix: + platform: + - release_for: FreeBSD-x86_64 + os: ubuntu-20.04 + target: x86_64-unknown-freebsd + bin: dockerbackup + name: dockerbackup-FreeBSD-x86_64.tar.gz + command: build + + - release_for: Windows-x86_64 + os: windows-latest + target: x86_64-pc-windows-msvc + bin: dockerbackup.exe + name: dockerbackup-Windows-x86_64.zip + command: both + + - release_for: macOS-x86_64 + os: macOS-latest + target: x86_64-apple-darwin + bin: dockerbackup + name: dockerbackup-Darwin-x86_64.tar.gz + command: both + + - release_for: linux-x86_64 + os: ubuntu-latest + target: x86_64-unknown-linux-gnu + bin: dockerbackup + name: dockerbackup-Darwin-x86_64.tar.gz + command: both + - release_for: Linux-aarch64 + os: ubuntu-latest + target: aarch64-unknown-linux-gnu + bin: dockerbackup + name: dockerbackup-Linux-aarch64.tar.gz + command: both + + runs-on: ${{ matrix.platform.os }} + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Get the release version from the tag + shell: bash + run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV + - name: Build binary + uses: houseabsolute/actions-rust-cross@v0 + with: + command: ${{ matrix.platform.command }} + target: ${{ matrix.platform.target }} + args: "--locked --release" + strip: true + + - name: Build archive + shell: bash + run: | + binary_name=dockerbackup + + dirname="$binary_name-${{ env.VERSION }}-${{ matrix.platform.target }}" + mkdir "$dirname" + if [ "${{ matrix.platform.os }}" = "windows-latest" ]; then + mv "target/${{ matrix.platform.target }}/release/$binary_name.exe" "$dirname" + else + mv "target/${{ matrix.platform.target }}/release/$binary_name" "$dirname" + fi + + if [ "${{ matrix.platform.os }}" = "windows-latest" ]; then + 7z a "$dirname.zip" "$dirname" + echo "ASSET=$dirname.zip" >> $GITHUB_ENV + else + tar -czf "$dirname.tar.gz" "$dirname" + echo "ASSET=$dirname.tar.gz" >> $GITHUB_ENV + fi + + - name: Release + uses: softprops/action-gh-release@v2 + with: + files: | + ${{ env.ASSET }} + publish: + name: Publish + runs-on: ubuntu-latest + needs: release + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Publish to crates.io + run: cargo publish --token ${{ secrets.CARGO_TOKEN }} + env: + CARGO_TOKEN: ${{ secrets.CARGO_TOKEN }} \ No newline at end of file From 0b5ea7a12e478262e7d0cc3ca03f94b31e3f231c Mon Sep 17 00:00:00 2001 From: radek Date: Sun, 21 Jul 2024 11:43:58 +0000 Subject: [PATCH 3/3] move to workflows directory --- .github/{ => workflows}/binary-release.yml | 0 .github/{ => workflows}/build-validation.yml | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename .github/{ => workflows}/binary-release.yml (100%) rename .github/{ => workflows}/build-validation.yml (100%) diff --git a/.github/binary-release.yml b/.github/workflows/binary-release.yml similarity index 100% rename from .github/binary-release.yml rename to .github/workflows/binary-release.yml diff --git a/.github/build-validation.yml b/.github/workflows/build-validation.yml similarity index 100% rename from .github/build-validation.yml rename to .github/workflows/build-validation.yml