CI: Build Windows binary in a separate job
This commit is contained in:
parent
3494ba71e6
commit
e1498a317b
5 changed files with 77 additions and 18 deletions
|
|
@ -9,10 +9,21 @@ on:
|
|||
type: boolean
|
||||
required: false
|
||||
default: true
|
||||
linux:
|
||||
description: 'Build Linux binaries'
|
||||
type: boolean
|
||||
required: false
|
||||
default: true
|
||||
windows:
|
||||
description: 'Build Windows binary'
|
||||
type: boolean
|
||||
required: false
|
||||
default: true
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
runs-on: docker
|
||||
if: ${{ inputs.linux }}
|
||||
timeout-minutes: 20
|
||||
container:
|
||||
image: rust:slim
|
||||
|
|
@ -31,7 +42,6 @@ jobs:
|
|||
rustup component add --toolchain nightly rustfmt clippy
|
||||
rustup target add x86_64-unknown-linux-gnu
|
||||
rustup target add x86_64-unknown-linux-musl
|
||||
rustup target add x86_64-pc-windows-msvc
|
||||
|
||||
- name: Setup additional tooling
|
||||
run: .forgejo/workflows/setup-tools.sh
|
||||
|
|
@ -50,9 +60,6 @@ jobs:
|
|||
- name: Build x64 Linux musl release binary
|
||||
run: just release-build-musl
|
||||
|
||||
- name: Build x64 Windows MSVC release binary
|
||||
run: just release-build-msvc
|
||||
|
||||
- name: Calculate SHA-256 hashes
|
||||
run: just shasum
|
||||
|
||||
|
|
@ -78,6 +85,45 @@ jobs:
|
|||
--user jutty:${{ secrets.GJD_REGISTRY_TOKEN }} \
|
||||
--upload-file target/x86_64-unknown-linux-gnu/release/en $url
|
||||
|
||||
publish-windows:
|
||||
runs-on: docker
|
||||
if: ${{ inputs.windows }}
|
||||
timeout-minutes: 20
|
||||
container:
|
||||
image: messense/cargo-xwin
|
||||
steps:
|
||||
- name: Install action dependencies
|
||||
run: apt-get install --no-install-recommends --update -y nodejs curl git
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-tags: true
|
||||
|
||||
- name: Setup Rust toolchain
|
||||
run: |
|
||||
target="x86_64-pc-windows-msvc"
|
||||
version=$(cat Cargo.toml | grep '^rust-version' | cut -d \" -f 2)
|
||||
rustup toolchain install --force-non-host "$version-$target"
|
||||
rustup default "$version-$target"
|
||||
|
||||
- name: Setup additional tooling
|
||||
run: .forgejo/workflows/setup-tools.sh
|
||||
|
||||
- name: Setup CI user
|
||||
run: |
|
||||
useradd -m ci && chown -R ci:ci .
|
||||
git config --global --add safe.directory "$PWD"
|
||||
|
||||
- name: Run Windows tests
|
||||
run: just ci test-windows
|
||||
|
||||
- name: Build x64 Windows MSVC release binary
|
||||
run: just release-build-msvc
|
||||
|
||||
- name: Calculate SHA-256 hashes
|
||||
run: just shasum
|
||||
|
||||
- name: Publish x64 Windows MSVC binary to git.jutty.dev registry
|
||||
if: ${{ inputs.upload }}
|
||||
run: |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue