Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: build binary artifacts for pushes/PRs #506

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

cpu
Copy link
Member

@cpu cpu commented Dec 16, 2024

This branch adds a CI job for all pushes & PRs that builds binary artifacts for rustls-ffi for:

  • 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.

These are automatically added to the CI run as artifacts. This has the advantage that we don't need any special write permissions and can manually attach binary artifacts to the releases we publish as appropriate. For now I'd like to avoid automating the release process. Artifact links associated with a branch are valid for ~90d.

You can see the artifacts produced for this PR here, under the annotations.

artifacts

Unpacking the archives gives structure like:

# Linux
.
├── include
│   └── rustls.h
├── lib
│   └── x86_64-linux-gnu
│       ├── librustls.a
│       ├── librustls.so
│       ├── librustls.so.0.15.0
│       └── pkgconfig
│           └── rustls.pc
# MacOS
.
├── include
│   └── rustls.h
├── lib
│   ├── librustls.0.15.0.dylib
│   ├── librustls.a
│   ├── librustls.dylib
│   └── pkgconfig
│       └── rustls.pc
# Windows
.
├── bin
│   ├── rustls.dll
│   └── rustls.pdb
├── include
│   └── rustls.h
├── lib
│   ├── pkgconfig
│   │   └── rustls.pc
│   ├── rustls.def
│   ├── rustls.dll.lib
│   └── rustls.lib

Resolves #218

* 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.
@cpu
Copy link
Member Author

cpu commented Dec 16, 2024

I haven't done extensive testing of the built artifacts from an external project yet, I'll try to that shortly. I have some confidence the artifacts are workable since we're leaning on cargo-c/cargo for the heavy lifting but it feels important to verify before attaching to a real release.

@cpu cpu self-assigned this Dec 16, 2024
@cpu cpu marked this pull request as draft December 17, 2024 16:59
@cpu
Copy link
Member Author

cpu commented Dec 17, 2024

I haven't done extensive testing of the built artifacts from an external project yet,

Setting this as draft until I do the above. It might take me a few days to get to this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Ship prebuilt artifacts
1 participant