From 9d8cbbe3d65a05d9649f7a56cfa4b0d0ecd2ac05 Mon Sep 17 00:00:00 2001 From: haneul Date: Thu, 11 Jul 2024 11:09:27 +0900 Subject: [PATCH] fixing workflow4 --- .github/workflows/release.yml | 148 ++++++++++++++++++++-------------- 1 file changed, 88 insertions(+), 60 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8745abf..39f8f64 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,11 +6,8 @@ on: - 'v*' jobs: - build: + build-linux: runs-on: ubuntu-latest - strategy: - matrix: - target: [x86_64-unknown-linux-gnu, x86_64-apple-darwin, aarch64-apple-darwin, x86_64-pc-windows-gnu] steps: - name: Checkout uses: actions/checkout@v2 @@ -20,89 +17,120 @@ jobs: with: profile: minimal toolchain: stable - target: ${{ matrix.target }} + target: x86_64-unknown-linux-gnu override: true - - name: Install Dependencies - if: matrix.target == 'x86_64-pc-windows-gnu' - run: sudo apt-get install -y mingw-w64 - - name: Build - run: cargo build --release --target ${{ matrix.target }} + run: cargo build --release --target x86_64-unknown-linux-gnu - name: Package - run: | - if [ ${{ matrix.target }} == "x86_64-unknown-linux-gnu" ]; then - tar -czvf which-allowed-linux.tar.gz -C target/${{ matrix.target }}/release which-allowed; - echo "package_name=which-allowed-linux.tar.gz" >> $GITHUB_ENV; - elif [ ${{ matrix.target }} == "x86_64-apple-darwin" ]; then - tar -czvf which-allowed-macos-x86_64.tar.gz -C target/${{ matrix.target }}/release which-allowed; - echo "package_name=which-allowed-macos-x86_64.tar.gz" >> $GITHUB_ENV; - elif [ ${{ matrix.target }} == "aarch64-apple-darwin" ]; then - tar -czvf which-allowed-macos-aarch64.tar.gz -C target/${{ matrix.target }}/release which-allowed; - echo "package_name=which-allowed-macos-aarch64.tar.gz" >> $GITHUB_ENV; - elif [ ${{ matrix.target }} == "x86_64-pc-windows-gnu" ]; then - zip which-allowed-windows.zip target/${{ matrix.target }}/release/which-allowed.exe; - echo "package_name=which-allowed-windows.zip" >> $GITHUB_ENV; - fi - - create_release: - runs-on: ubuntu-latest - needs: build - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Install GitHub CLI - run: sudo apt-get install gh - - - name: Create Release - id: create_release - run: | - TAG_NAME=$(echo $GITHUB_REF | sed 's|refs/tags/||') - gh release create $TAG_NAME -t $TAG_NAME -n "Release $TAG_NAME" + run: tar -czvf which-allowed-linux.tar.gz -C target/x86_64-unknown-linux-gnu/release which-allowed env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + package_name: which-allowed-linux.tar.gz - upload_assets: - runs-on: ubuntu-latest - needs: [build, create_release] - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Upload Linux Asset - if: env.package_name == 'which-allowed-linux.tar.gz' + - name: Upload Release Asset uses: actions/upload-release-asset@v1 with: - upload_url: ${{ steps.create_release.outputs.upload_url }} + upload_url: ${{ github.event.release.upload_url }} asset_path: which-allowed-linux.tar.gz asset_name: which-allowed-linux.tar.gz asset_content_type: application/gzip - - name: Upload macOS x86_64 Asset - if: env.package_name == 'which-allowed-macos-x86_64.tar.gz' + build-macos-x86_64: + runs-on: macos-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Install Xcode Command Line Tools + run: xcode-select --install || true + + - name: Install Rust + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + target: x86_64-apple-darwin + override: true + + - name: Build + run: cargo build --release --target x86_64-apple-darwin + + - name: Package + run: tar -czvf which-allowed-macos-x86_64.tar.gz -C target/x86_64-apple-darwin/release which-allowed + env: + package_name: which-allowed-macos-x86_64.tar.gz + + - name: Upload Release Asset uses: actions/upload-release-asset@v1 with: - upload_url: ${{ steps.create_release.outputs.upload_url }} + upload_url: ${{ github.event.release.upload_url }} asset_path: which-allowed-macos-x86_64.tar.gz asset_name: which-allowed-macos-x86_64.tar.gz asset_content_type: application/gzip - - name: Upload macOS aarch64 Asset - if: env.package_name == 'which-allowed-macos-aarch64.tar.gz' + build-macos-aarch64: + runs-on: macos-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Install Xcode Command Line Tools + run: xcode-select --install || true + + - name: Install Rust + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + target: aarch64-apple-darwin + override: true + + - name: Build + run: cargo build --release --target aarch64-apple-darwin + + - name: Package + run: tar -czvf which-allowed-macos-aarch64.tar.gz -C target/aarch64-apple-darwin/release which-allowed + env: + package_name: which-allowed-macos-aarch64.tar.gz + + - name: Upload Release Asset uses: actions/upload-release-asset@v1 with: - upload_url: ${{ steps.create_release.outputs.upload_url }} + upload_url: ${{ github.event.release.upload_url }} asset_path: which-allowed-macos-aarch64.tar.gz asset_name: which-allowed-macos-aarch64.tar.gz asset_content_type: application/gzip - - name: Upload Windows Asset - if: env.package_name == 'which-allowed-windows.zip' + build-windows: + runs-on: windows-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Install Rust + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + target: x86_64-pc-windows-gnu + override: true + + - name: Install Dependencies + run: choco install mingw + + - name: Build + run: cargo build --release --target x86_64-pc-windows-gnu + + - name: Package + run: Compress-Archive -Path target\x86_64-pc-windows-gnu\release\which-allowed.exe -DestinationPath which-allowed-windows.zip + env: + package_name: which-allowed-windows.zip + + - name: Upload Release Asset uses: actions/upload-release-asset@v1 with: - upload_url: ${{ steps.create_release.outputs.upload_url }} + upload_url: ${{ github.event.release.upload_url }} asset_path: which-allowed-windows.zip asset_name: which-allowed-windows.zip asset_content_type: application/zip