From 8a064e379c2f1e73de4a041cd9a7d8bbd4b54d0c Mon Sep 17 00:00:00 2001 From: quietvoid Date: Sun, 25 Aug 2024 09:24:50 -0400 Subject: [PATCH] Allow building ARM only with specific ref --- .github/workflows/release.yml | 79 ++++++----------------------------- 1 file changed, 12 insertions(+), 67 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8bb5040..7b0f82b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,5 +1,10 @@ on: workflow_dispatch: + inputs: + target_ref: + description: 'Ref to checkout' + required: true + type: string name: Artifacts @@ -18,6 +23,9 @@ jobs: steps: - uses: actions/checkout@v4 + with: + ref: ${{ inputs.target_ref }} + - uses: ./.github/actions/setup-release-env - name: Install musl-tools @@ -27,28 +35,20 @@ jobs: - name: Build run: | - rustup target add ${{ env.LINUX_TARGET }} rustup target add ${{ env.LINUX_ARM_TARGET }} - cargo build --release --target ${{ env.LINUX_TARGET }} --no-default-features --features internal-font cargo build --config "target.${{ env.LINUX_ARM_TARGET }}.linker = 'aarch64-linux-gnu-gcc'" \ --release --target ${{ env.LINUX_ARM_TARGET }} --no-default-features --features internal-font - name: Create tarball and checksum run: | - X86_64_ARCHIVE_FILE=${{ env.RELEASE_DIR }}/${{ env.ARCHIVE_PREFIX }}-${{ env.LINUX_TARGET }}.tar.gz AARCH64_ARCHIVE_FILE=${{ env.RELEASE_DIR }}/${{ env.ARCHIVE_PREFIX }}-${{ env.LINUX_ARM_TARGET }}.tar.gz - strip ./target/${{ env.LINUX_TARGET }}/release/${{ env.RELEASE_BIN }} aarch64-linux-gnu-strip ./target/${{ env.LINUX_ARM_TARGET }}/release/${{ env.RELEASE_BIN }} - mv ./target/${{ env.LINUX_TARGET }}/release/${{ env.RELEASE_BIN }} ./${{ env.RELEASE_BIN }} - tar -cvzf ./${X86_64_ARCHIVE_FILE} ./${{ env.RELEASE_BIN }} - mv ./target/${{ env.LINUX_ARM_TARGET }}/release/${{ env.RELEASE_BIN }} ./${{ env.RELEASE_BIN }} tar -cvzf ./${AARCH64_ARCHIVE_FILE} ./${{ env.RELEASE_BIN }} - python -c "import hashlib; import pathlib; print(hashlib.sha256(pathlib.Path('${X86_64_ARCHIVE_FILE}').read_bytes()).hexdigest())" > ${X86_64_ARCHIVE_FILE}.sha256 python -c "import hashlib; import pathlib; print(hashlib.sha256(pathlib.Path('${AARCH64_ARCHIVE_FILE}').read_bytes()).hexdigest())" > ${AARCH64_ARCHIVE_FILE}.sha256 - name: Upload artifacts @@ -62,41 +62,25 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: ./.github/actions/setup-release-env + with: + ref: ${{ inputs.target_ref }} - - name: Install cargo-c - run: | - $LINK = "https://github.com/lu-zero/cargo-c/releases/latest/download" - $CARGO_C_FILE = "cargo-c-windows-msvc" - curl -LO "$LINK/$CARGO_C_FILE.zip" - 7z e -y "$CARGO_C_FILE.zip" -o"${env:USERPROFILE}\.cargo\bin" + - uses: ./.github/actions/setup-release-env - name: Build run: | rustup target add ${{ env.WINDOWS_ARM_TARGET }} - cargo build --release cargo build --release --target ${{ env.WINDOWS_ARM_TARGET }} - - name: Build C lib - run: cargo cbuild --manifest-path dolby_vision/Cargo.toml --release - - name: Create zipfile shell: bash run: | - X86_64_ARCHIVE_FILE=${{ env.RELEASE_DIR }}/${{ env.ARCHIVE_PREFIX }}-${{ env.WINDOWS_TARGET }}.zip AARCH64_ARCHIVE_FILE=${{ env.RELEASE_DIR }}/${{ env.ARCHIVE_PREFIX }}-${{ env.WINDOWS_ARM_TARGET }}.zip - mv ./target/release/${{ env.RELEASE_BIN }}.exe ./${{ env.RELEASE_BIN }}.exe - 7z a ./${X86_64_ARCHIVE_FILE} ./${{ env.RELEASE_BIN }}.exe - mv ./target/${{ env.WINDOWS_ARM_TARGET }}/release/${{ env.RELEASE_BIN }}.exe ./${{ env.RELEASE_BIN }}.exe 7z a ./${AARCH64_ARCHIVE_FILE} ./${{ env.RELEASE_BIN }}.exe - mv ./dolby_vision/target/${{ env.WINDOWS_TARGET }}/release/dovi.dll . - 7z a ./${{ env.RELEASE_DIR }}/libdovi-${{ env.LIBDOVI_PKG_VERSION }}-${{ env.WINDOWS_TARGET }}.zip ./dovi.dll - - python -c "import hashlib; import pathlib; print(hashlib.sha256(pathlib.Path('${X86_64_ARCHIVE_FILE}').read_bytes()).hexdigest())" > ${X86_64_ARCHIVE_FILE}.sha256 python -c "import hashlib; import pathlib; print(hashlib.sha256(pathlib.Path('${AARCH64_ARCHIVE_FILE}').read_bytes()).hexdigest())" > ${AARCH64_ARCHIVE_FILE}.sha256 - name: Upload artifacts @@ -105,45 +89,8 @@ jobs: name: Windows artifacts path: ./${{ env.RELEASE_DIR }}/* - macos-binary: - runs-on: macos-latest - - steps: - - uses: actions/checkout@v4 - - uses: ./.github/actions/setup-release-env - - - name: Build - run: | - rustup target add ${{ env.MACOS_X86_TARGET }} - - cargo build --release - cargo build --release --target ${{ env.MACOS_X86_TARGET }} - - - name: Create universal macOS binary - run: | - strip ./target/release/${{ env.RELEASE_BIN }} - strip ./target/${{ env.MACOS_X86_TARGET }}/release/${{ env.RELEASE_BIN }} - - lipo -create \ - ./target/release/${{ env.RELEASE_BIN }} \ - ./target/${{ env.MACOS_X86_TARGET }}/release/${{ env.RELEASE_BIN }} \ - -output ./${{ env.RELEASE_BIN }} - - - name: Create zipfile - run: | - ARCHIVE_FILE=${{ env.RELEASE_DIR }}/${{ env.ARCHIVE_PREFIX }}-universal-macOS.zip - zip -9 ./${ARCHIVE_FILE} ./${{ env.RELEASE_BIN }} - - python -c "import hashlib; import pathlib; print(hashlib.sha256(pathlib.Path('${ARCHIVE_FILE}').read_bytes()).hexdigest())" > ${ARCHIVE_FILE}.sha256 - - - name: Upload artifacts - uses: actions/upload-artifact@v4 - with: - name: macOS artifacts - path: ./${{ env.RELEASE_DIR }}/* - create-release: - needs: [linux-binary, windows-binary, macos-binary] + needs: [linux-binary, windows-binary] runs-on: ubuntu-latest permissions: contents: write @@ -163,7 +110,6 @@ jobs: subject-path: | Linux artifacts/* Windows artifacts/* - macOS artifacts/* - name: Create a draft release uses: softprops/action-gh-release@v1 @@ -173,4 +119,3 @@ jobs: files: | Linux artifacts/* Windows artifacts/* - macOS artifacts/*