Skip to content

Publish Apple Silicon - Nightly #31

Publish Apple Silicon - Nightly

Publish Apple Silicon - Nightly #31

name: Publish Apple Silicon - Nightly
on:
workflow_dispatch:
env:
QSV_KIND: prebuilt-nightly
jobs:
analyze-tags:
runs-on: ubuntu-22.04
outputs:
previous-tag: ${{ steps.previoustag.outputs.tag }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
- name: Get previous tag
id: previoustag
uses: "WyriHaximus/github-action-get-previous-tag@v1"
#▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲#
publish:
name: Publish for ${{ matrix.job.target }}
needs: analyze-tags
# runs-on: self-hosted
runs-on: macos-latest
strategy:
matrix:
rust: [nightly-2024-07-26]
job:
- os: macos
os-name: macos
target: aarch64-apple-darwin
architecture: aarch64
use-cross: false
addl-build-args: --features=apply,fetch,foreach,self_update,luau,polars,to,geocode
default-features: --no-default-features
addl-qsvlite-features:
addl-qsvdp-features: luau
steps:
- name: Installing Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
profile: minimal
components: rust-src
target: ${{ matrix.job.target }}
override: true
default: true
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
ref: ${{ needs.analyze-tags.outputs.previous-tag }}
- name: Build qsv
env:
RUSTFLAGS: --emit=asm -C target-cpu=native
uses: actions-rs/cargo@v1
with:
command: build
use-cross: ${{ matrix.job.use-cross }}
toolchain: ${{ matrix.rust }}
args: --profile release-nightly --locked --bin qsv -Z build-std=std,panic_abort -Z build-std-features=panic_immediate_abort --target ${{ matrix.job.target }} ${{ matrix.job.addl-build-args }},feature_capable,nightly ${{ matrix.job.default-features }}
- name: Build qsvlite
env:
RUSTFLAGS: --emit=asm -C target-cpu=native
uses: actions-rs/cargo@v1
with:
command: build
use-cross: ${{ matrix.job.use-cross }}
toolchain: ${{ matrix.rust }}
args: --profile release-nightly --locked --bin qsvlite -Z build-std=std,panic_abort -Z build-std-features=panic_immediate_abort --features=lite,self_update,nightly,${{ matrix.job.addl-qsvlite-features }} --target ${{ matrix.job.target }} ${{ matrix.job.default-features }}
- name: Build qsvdp
env:
RUSTFLAGS: --emit=asm -C target-cpu=native
uses: actions-rs/cargo@v1
with:
command: build
use-cross: ${{ matrix.job.use-cross }}
toolchain: ${{ matrix.rust }}
args: --profile release-nightly --locked --bin qsvdp -Z build-std=std,panic_abort -Z build-std-features=panic_immediate_abort --features=datapusher_plus,nightly,${{ matrix.job.addl-qsvdp-features }} --target ${{ matrix.job.target }} ${{ matrix.job.default-features }}
- name: Copy binaries to working dir
shell: bash
run: |
mkdir qsv-${{ needs.analyze-tags.outputs.previous-tag }}
rm target/${{ matrix.job.target }}/release-nightly/*.d
cp -v target/${{ matrix.job.target }}/release-nightly/qsv* qsv-${{ needs.analyze-tags.outputs.previous-tag }}
cd qsv-${{ needs.analyze-tags.outputs.previous-tag }}
mv qsv qsv_nightly
mv qsvlite qsvlite_nightly
mv qsvdp qsvdp_nightly
rustup show > qsv_nightly_rust_version_info.txt
cd ..
- name: Create README
shell: bash
run: |
cat docs/publishing_assets/README.txt docs/publishing_assets/qsv-${{ matrix.job.target }}.txt > qsv-${{ needs.analyze-tags.outputs.previous-tag }}/README
- name: install zipsign
run: |
cargo install zipsign
- name: Fetch zipsign private key
uses: mobiledevops/secret-to-file-action@v1
with:
base64-encoded-secret: ${{ secrets.QSV_ZIPSIGN_PRIV_KEY }}
filename: "qsvpriv.key"
is-executable: false
working-directory: "."
- name: Download latest release zip
uses: robinraju/[email protected]
with:
repository: "jqnatividad/qsv"
latest: true
token: ${{ secrets.GITHUB_TOKEN }}
fileName: qsv-${{ needs.analyze-tags.outputs.previous-tag }}-${{ matrix.job.target }}.zip
- name: remove zipsign signature from zip archive
run: |
zipsign unsign zip qsv-${{ needs.analyze-tags.outputs.previous-tag }}-${{ matrix.job.target }}.zip
- name: install 7zip
run: brew install sevenzip
- name: add/update nightly files to zip
run: 7zz u -tzip qsv-${{ needs.analyze-tags.outputs.previous-tag }}-${{ matrix.job.target }}.zip ./qsv-${{ needs.analyze-tags.outputs.previous-tag }}/* -mx=9 -mmt=on
- name: re-zipsign zip archive
run: |
zipsign sign zip qsv-${{ needs.analyze-tags.outputs.previous-tag }}-${{ matrix.job.target }}.zip qsvpriv.key
cp -v qsv-${{ needs.analyze-tags.outputs.previous-tag }}-${{ matrix.job.target }}.zip /tmp
- name: Upload zipped binaries to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: qsv-${{ needs.analyze-tags.outputs.previous-tag }}-${{ matrix.job.target }}.zip
asset_name: qsv-${{ needs.analyze-tags.outputs.previous-tag }}-${{ matrix.job.target }}.zip
overwrite: true
tag: ${{ needs.analyze-tags.outputs.previous-tag }}