diff --git a/.github/workflows/build_rust.yaml b/.github/workflows/build_rust.yaml index d5bc86a..e35b844 100644 --- a/.github/workflows/build_rust.yaml +++ b/.github/workflows/build_rust.yaml @@ -20,7 +20,15 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest, windows-latest, macos-latest, macos-12] + include: + - os: ubuntu-latest + package_name: linux-x64 + - os: windows-latest + package_name: windows-x64 + - os: macos-latest + package_name: macos-aarch64 + - os: macos-12 + package_name: macos-x64 steps: - name: Checkout repository @@ -69,17 +77,17 @@ jobs: run: mkdir -p release - name: Create release system directory - run: mkdir -p release/${{ matrix.os }} + run: mkdir -p release/${{ matrix.package-name }} - name: Copy binary to release directory Windows if: matrix.os == 'windows-latest' - run: cp target/release/idf-im-cli.exe release/${{ matrix.os }}/eim.exe + run: cp target/release/idf-im-cli.exe release/${{ matrix.package-name }}/eim.exe - name: Copy binary to release directory POSIX if: matrix.os != 'windows-latest' run: | - cp target/release/idf-im-cli release/${{ matrix.os }}/eim - chmod +x release/${{ matrix.os }}/eim + cp target/release/idf-im-cli release/${{ matrix.package-name }}/eim + chmod +x release/${{ matrix.package-name }}/eim - name: Codesign macOS eim executables if: startsWith(matrix.os, 'macos') @@ -95,12 +103,12 @@ jobs: /usr/bin/security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k espressif build.keychain /usr/bin/codesign --entitlements eim.entitlement --options runtime --force -s "ESPRESSIF SYSTEMS (SHANGHAI) CO., LTD. (QWXF6GB4AV)" release/${{ matrix.os }}/eim -v - /usr/bin/codesign -v -vvv --deep release/${{ matrix.os }}/eim + /usr/bin/codesign -v -vvv --deep release/${{ matrix.package-name }}/eim - name: Zip eim executable for notarization if: startsWith(matrix.os, 'macos') run: | - cd release/${{ matrix.os }} + cd release/${{ matrix.package-name }} zip -r eim.zip eim - name: Notarization of macOS eim executables @@ -118,38 +126,38 @@ jobs: echo "Create keychain profile" xcrun notarytool store-credentials "eim-notarytool-profile" --apple-id $NOTARIZATION_USERNAME --team-id $NOTARIZATION_TEAM_ID --password $NOTARIZATION_PASSWORD - xcrun notarytool submit release/${{ matrix.os }}/eim.zip --keychain-profile "eim-notarytool-profile" --wait + xcrun notarytool submit release/${{ matrix.package-name }}/eim.zip --keychain-profile "eim-notarytool-profile" --wait echo "Unzipping the executable" - unzip -o release/${{ matrix.os }}/eim.zip -d release/${{ matrix.os }} + unzip -o release/${{ matrix.package-name }}/eim.zip -d release/${{ matrix.package-name }} # echo "Attach staple for eim executable" - # xcrun stapler staple release/${{ matrix.os }}/eim + # xcrun stapler staple release/${{ matrix.package-name }}/eim - name: Zip artifacts (Windows) if: matrix.os == 'windows-latest' run: | - cd release/${{ matrix.os }} + cd release/${{ matrix.package-name }} 7z a -tzip eim.zip eim.exe - name: Zip artifacts (POSIX) if: matrix.os != 'windows-latest' run: | - cd release/${{ matrix.os }} + cd release/${{ matrix.package-name }} zip -r eim.zip eim - name: Upload build artifacts uses: actions/upload-artifact@v4 with: - name: eim-${{ github.run_id }}-${{ matrix.os }} - path: release/${{ matrix.os }}/eim.zip + name: eim-${{ github.run_id }}-${{ matrix.package-name }} + path: release/${{ matrix.package-name }}/eim.zip - name: Upload artifact for tag if: startsWith(github.ref, 'refs/tags/') uses: actions/upload-artifact@v4 with: - name: eim-${{ github.ref_name }}-${{ matrix.os }} - path: release/${{ matrix.os }}/eim.zip + name: eim-${{ github.ref_name }}-${{ matrix.package-name }} + path: release/${{ matrix.package-name }}/eim.zip - name: Upload Release Asset if: github.event_name == 'release' && github.event.action == 'created' @@ -158,8 +166,8 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ github.event.release.upload_url }} - asset_path: release/${{ matrix.os }}/eim.zip - asset_name: eim-${{ github.ref_name }}-${{ matrix.os }}.zip + asset_path: release/${{ matrix.package-name }}/eim.zip + asset_name: eim-${{ github.ref_name }}-${{ matrix.package-name }}.zip asset_content_type: application/zip - name: Create aarch64-linux build