Skip to content

Commit

Permalink
ci: build binary artifacts for pushes/PRs
Browse files Browse the repository at this point in the history
* Windows (x86_64 MSVC)
* Linux (x86_64 GNU)
* Apple (ARM64)

Binary artifacts are built in release mode using stable rust, with the
default crypto provider (aws-lc-rs) and cert compression enabled.

For FIPS, no cert-compression, the ring crypto provider, or other
customization you will need to build from source.
  • Loading branch information
cpu committed Dec 16, 2024
1 parent 7ee38fb commit 26dabb4
Showing 1 changed file with 92 additions and 0 deletions.
92 changes: 92 additions & 0 deletions .github/workflows/artifacts.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: binary artifacts

permissions:
contents: read

on:
push:
pull_request:

jobs:
windows-binaries:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false

- name: Install stable Rust
uses: dtolnay/rust-toolchain@stable

- name: Install cargo-c
env:
LINK: https://github.com/lu-zero/cargo-c/releases/latest/download
CARGO_C_FILE: cargo-c-windows-msvc.zip
run: |
curl -L "$env:LINK/$env:CARGO_C_FILE" -o cargo-c-windows-msvc.zip
powershell -Command "Expand-Archive -Path cargo-c-windows-msvc.zip -DestinationPath $env:USERPROFILE\\.cargo\\bin -Force"
- name: Build rusts-ffi
run: |
cargo cinstall --features cert_compression --release --prefix target/rustls-ffi
- name: Upload binaries
uses: actions/upload-artifact@v4
with:
name: rustls-ffi-x86_64-windows
path: target/rustls-ffi

linux-binaries:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false

- name: Install stable Rust
uses: dtolnay/rust-toolchain@stable

- name: Install cargo-c (Ubuntu)
env:
LINK: https://github.com/lu-zero/cargo-c/releases/latest/download
CARGO_C_FILE: cargo-c-x86_64-unknown-linux-musl.tar.gz
run: |
curl -L $LINK/$CARGO_C_FILE | tar xz -C ~/.cargo/bin
- name: Build rusts-ffi
run: |
cargo cinstall --features cert_compression --release --prefix target/rustls-ffi
- name: Upload binaries
uses: actions/upload-artifact@v4
with:
name: rustls-ffi-x86_64-linux-gnu
path: target/rustls-ffi

macos-binaries:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false

- name: Install stable Rust
uses: dtolnay/rust-toolchain@stable

- name: Install cargo-c (macOS)
env:
LINK: https://github.com/lu-zero/cargo-c/releases/latest/download
CARGO_C_FILE: cargo-c-macos.zip
run: |
curl -L $LINK/$CARGO_C_FILE -o cargo-c-macos.zip
unzip cargo-c-macos.zip -d ~/.cargo/bin
- name: Build rusts-ffi
run: |
cargo cinstall --features cert_compression --release --prefix target/rustls-ffi
- name: Upload binaries
uses: actions/upload-artifact@v4
with:
name: rustls-ffi-arm64-macos
path: target/rustls-ffi

0 comments on commit 26dabb4

Please sign in to comment.