Skip to content

v1.0.0 release

v1.0.0 release #392

Workflow file for this run

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 }}