From 36213c50d25adfe56db7147aeead257bdae5dcef Mon Sep 17 00:00:00 2001 From: nanov Date: Wed, 13 Nov 2024 05:52:48 +0200 Subject: [PATCH] f: new action --- .github/workflows/build.yml | 106 +++++++++++++++--------------------- 1 file changed, 43 insertions(+), 63 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e38d0ae..9f8263a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,77 +1,57 @@ -name: Deploy +name: Release + +permissions: + contents: write on: push: tags: - - "[0-9]+.[0-9]+.[0-9]+" - -permissions: - contents: write + - v[0-9]+.* jobs: - build-and-upload: - name: Build and upload - runs-on: ${{ matrix.os }} + create-release: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: taiki-e/create-gh-release-action@v1 + with: + # (optional) Path to changelog. + changelog: CHANGELOG.md + # (required) GitHub token for creating GitHub Releases. + token: ${{ secrets.GITHUB_TOKEN }} + upload-assets: + needs: create-release strategy: matrix: - # You can add more, for any target you'd like! include: - - build: linux + - target: x86_64-unknown-linux-gnu os: ubuntu-latest - target: x86_64-unknown-linux-musl - - - build: macos + - target: x86_64-apple-darwin os: macos-latest - target: x86_64-apple-darwin - + - target: x86_64-pc-windows-msvc + os: windows-latest + runs-on: ${{ matrix.os }} steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Get the release version from the tag - shell: bash - run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV - - - name: Install Rust - # Or @nightly if you want - uses: dtolnay/rust-toolchain@1.82.0 - # Arguments to pass in - with: - # Make Rust compile to our target (defined in the matrix) - targets: ${{ matrix.target }} - - - name: Build - uses: actions-rs/cargo@v1 - with: - use-cross: true - command: build - args: --verbose --release --target ${{ matrix.target }} - - - name: Build archive - shell: bash - run: | - # Replace with the name of your binary - binary_name="rae-cli" - - dirname="$binary_name-${{ env.VERSION }}-${{ matrix.target }}" - mkdir "$dirname" - if [ "${{ matrix.os }}" = "windows-latest" ]; then - mv "target/${{ matrix.target }}/release/$binary_name.exe" "$dirname" - else - mv "target/${{ matrix.target }}/release/$binary_name" "$dirname" - fi - - if [ "${{ matrix.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@v1 + - uses: actions/checkout@v4 + - uses: taiki-e/upload-rust-binary-action@v1 with: - files: | - ${{ env.ASSET }} + # (required) Comma-separated list of binary names (non-extension portion of filename) to build and upload. + # Note that glob pattern is not supported yet. + bin: ... + # (optional) Target triple, default is host triple. + # This is optional but it is recommended that this always be set to + # clarify which target you are building for if macOS is included in + # the matrix because GitHub Actions changed the default architecture + # of macos-latest since macos-14. + target: ${{ matrix.target }} + # (optional) On which platform to distribute the `.tar.gz` file. + # [default value: unix] + # [possible values: all, unix, windows, none] + tar: unix + # (optional) On which platform to distribute the `.zip` file. + # [default value: windows] + # [possible values: all, unix, windows, none] + zip: windows + # (required) GitHub token for uploading assets to GitHub Releases. + token: ${{ secrets.GITHUB_TOKEN }}