v1.0.0 release #392
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Publish | |
on: | |
push: | |
tags: | |
- '*' | |
workflow_dispatch: | |
env: | |
QSV_KIND: prebuilt | |
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" | |
#▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲# | |
# - name: delete git repo | |
# run: rm -rf qsv | |
publish: | |
name: Publish for ${{ matrix.job.target }} | |
needs: analyze-tags | |
runs-on: ${{ matrix.job.os }} | |
strategy: | |
matrix: | |
rust: [stable] | |
job: | |
- os: ubuntu-24.04 | |
os-name: linux | |
target: x86_64-unknown-linux-gnu | |
architecture: x86_64 | |
use-cross: false | |
addl-build-args: --features=apply,luau,fetch,foreach,self_update,geocode,polars,to,lens,prompt | |
default-features: | |
addl-qsvlite-features: | |
addl-qsvdp-features: luau,polars | |
addl-rustflags: -C target-feature=+sse3,+ssse3,+sse4.1,+sse4.2,+popcnt,+avx,+avx2,+fma,+bmi1,+bmi2,+lzcnt,+pclmulqdq | |
- os: ubuntu-24.04 | |
os-name: linux | |
target: x86_64-unknown-linux-musl | |
architecture: x86_64 | |
musl-prep: true | |
use-cross: false | |
addl-build-args: --features=apply,fetch,foreach,self_update,lens | |
default-features: | |
addl-qsvlite-features: | |
addl-qsvdp-features: | |
addl-rustflags: -C target-feature=+sse3,+ssse3,+sse4.1,+sse4.2,+popcnt,+avx,+avx2,+fma,+bmi1,+bmi2,+lzcnt,+pclmulqdq | |
# - os: ubuntu-24.04 | |
# os-name: linux | |
# target: i686-unknown-linux-gnu | |
# architecture: i686 | |
# use-cross: true | |
# addl-build-args: --features=apply,fetch,foreach,self_update | |
# default-features: | |
# addl-qsvlite-features: | |
# addl-qsvdp-features: | |
# addl-rustflags: | |
- os: windows-latest | |
os-name: windows | |
target: x86_64-pc-windows-msvc | |
architecture: x86_64 | |
use-cross: false | |
addl-build-args: --features=apply,luau,fetch,self_update,geocode,polars,to,lens,foreach,prompt | |
default-features: | |
addl-qsvlite-features: | |
addl-qsvdp-features: luau | |
addl-rustflags: -C target-feature=+sse3,+ssse3,+sse4.1,+sse4.2,+popcnt,+avx,+avx2,+fma,+bmi1,+bmi2,+lzcnt,+pclmulqdq | |
# - os: windows-latest | |
# os-name: windows | |
# target: i686-pc-windows-msvc | |
# architecture: i686 | |
# use-cross: true | |
# addl-build-args: --features=apply,fetch,self_update | |
# default-features: | |
# addl-qsvlite-features: | |
# addl-qsvdp-features: | |
# addl-rustflags: | |
- os: windows-latest | |
os-name: windows | |
target: x86_64-pc-windows-gnu | |
architecture: x86_64 | |
use-cross: false | |
addl-build-args: --features=apply,luau,fetch,self_update,geocode,polars,to,lens,foreach,prompt | |
default-features: --no-default-features | |
addl-qsvlite-features: | |
addl-qsvdp-features: luau | |
addl-rustflags: -C target-feature=+sse3,+ssse3,+sse4.1,+sse4.2,+popcnt,+avx,+avx2,+fma,+bmi1,+bmi2,+lzcnt,+pclmulqdq | |
# - os: macos-12 | |
# os-name: macos | |
# target: x86_64-apple-darwin | |
# architecture: x86_64 | |
# use-cross: false | |
# addl-build-args: --features=apply,luau,fetch,foreach,self_update,polars | |
# default-features: --no-default-features | |
# addl-qsvlite-features: | |
# addl-qsvdp-features: luau | |
# - os: macos-12 | |
# os-name: macos | |
# target: aarch64-apple-darwin | |
# architecture: aarch64 | |
# use-cross: true | |
# addl-build-args: --features=apply,fetch,foreach,self_update | |
# default-features: --no-default-features | |
# addl-qsvlite-features: | |
# addl-qsvdp-features: | |
- os: ubuntu-24.04 | |
os-name: linux | |
target: aarch64-unknown-linux-gnu | |
architecture: aarch64 | |
use-cross: true | |
addl-build-args: --features=apply,fetch,foreach,self_update,lens | |
default-features: | |
addl-qsvlite-features: | |
addl-qsvdp-features: | |
addl-rustflags: | |
# - os: ubuntu-20.04 | |
# os-name: linux | |
# target: arm-unknown-linux-gnueabihf | |
# architecture: arm | |
# use-cross: true | |
# addl-build-args: --features=apply,luau,fetch,foreach,self_update | |
# default-features: --no-default-features | |
# - os: ubuntu-20.04 | |
# os-name: linux | |
# target: arm-unknown-linux-musleabihf | |
# architecture: arm | |
# use-cross: true | |
# addl-build-args: --features=apply,luau,fetch,foreach,self_update | |
# default-features: --no-default-features | |
steps: | |
- name: Installing Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.rust }} | |
profile: minimal | |
target: ${{ matrix.job.target }} | |
override: true | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ needs.analyze-tags.outputs.previous-tag }} | |
- name: apt-get update Ubuntu, libwayland-dev | |
if: ${{ matrix.job.os-name == 'linux' }} | |
run: | | |
sudo apt-get update | |
sudo apt-get install libwayland-dev | |
- name: build prep for x86_64-unknown-linux-musl | |
if: ${{ matrix.job.musl-prep }} | |
run: | | |
sudo apt-get install musl-tools musl-dev | |
sudo ln -s /usr/bin/g++ /usr/bin/musl-g++ | |
- name: Build qsv | |
# env: | |
# RUSTFLAGS: --emit=asm | |
env: | |
RUSTFLAGS: ${{ matrix.job.addl-rustflags }} | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
use-cross: ${{ matrix.job.use-cross }} | |
toolchain: ${{ matrix.rust }} | |
args: --release --locked --bin qsv --target ${{ matrix.job.target }} ${{ matrix.job.addl-build-args }},feature_capable ${{ matrix.job.default-features }} | |
- name: Build qsvlite | |
env: | |
RUSTFLAGS: --emit=asm ${{ matrix.job.addl-rustflags }} | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
use-cross: ${{ matrix.job.use-cross }} | |
toolchain: ${{ matrix.rust }} | |
args: --release --locked --bin qsvlite --features=lite,self_update,${{ matrix.job.addl-qsvlite-features }} --target ${{ matrix.job.target }} ${{ matrix.job.default-features }} | |
- name: Build qsvdp | |
env: | |
RUSTFLAGS: --emit=asm ${{ matrix.job.addl-rustflags }} | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
use-cross: ${{ matrix.job.use-cross }} | |
toolchain: ${{ matrix.rust }} | |
args: --release --locked --bin qsvdp --features=datapusher_plus,${{ 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/*.d | |
cp -v target/${{ matrix.job.target }}/release/qsv* qsv-${{ needs.analyze-tags.outputs.previous-tag }} | |
- 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: zip up binaries | |
run: 7z a -tzip qsv-${{ needs.analyze-tags.outputs.previous-tag }}-${{ matrix.job.target }}.zip ./qsv-${{ needs.analyze-tags.outputs.previous-tag }}/* -mx=9 -mmt=on | |
- 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: zipsign binary | |
run: | | |
zipsign sign zip qsv-${{ needs.analyze-tags.outputs.previous-tag }}-${{ matrix.job.target }}.zip qsvpriv.key | |
- 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 }} | |