Skip to content

Commit

Permalink
Allow building ARM only with specific ref
Browse files Browse the repository at this point in the history
  • Loading branch information
quietvoid committed Aug 25, 2024
1 parent 86f47d4 commit 8a064e3
Showing 1 changed file with 12 additions and 67 deletions.
79 changes: 12 additions & 67 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
on:
workflow_dispatch:
inputs:
target_ref:
description: 'Ref to checkout'
required: true
type: string

name: Artifacts

Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -163,7 +110,6 @@ jobs:
subject-path: |
Linux artifacts/*
Windows artifacts/*
macOS artifacts/*
- name: Create a draft release
uses: softprops/action-gh-release@v1
Expand All @@ -173,4 +119,3 @@ jobs:
files: |
Linux artifacts/*
Windows artifacts/*
macOS artifacts/*

0 comments on commit 8a064e3

Please sign in to comment.