-
Notifications
You must be signed in to change notification settings - Fork 12
chore(ci) : expand lib targets #50
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
base: main
Are you sure you want to change the base?
Changes from all commits
ace9dd6
45aed68
5f51766
015601b
7808b19
f99ac4f
8dfa343
dbf7512
e751eba
a417a27
888019e
d2b96d9
23ea753
cba57de
47d276e
c7f7de8
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| MACOSX_DEPLOYMENT_TARGET=11 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -18,40 +18,53 @@ env: | |
| jobs: | ||
| build: | ||
| name: Build (${{ matrix.target }}) | ||
| runs-on: ${{ matrix.runner }} | ||
| runs-on: ${{ matrix.os }} | ||
| container: ${{ matrix.container }} | ||
| timeout-minutes: 90 | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| include: | ||
| - target: x86_64-unknown-linux-gnu | ||
| runner: ubuntu-24.04 | ||
| os_label: linux | ||
| - target: aarch64-unknown-linux-gnu | ||
| runner: ubuntu-24.04-arm | ||
| os_label: linux | ||
| - os: ubuntu-24.04 | ||
| container: quay.io/pypa/manylinux_2_28_x86_64 | ||
| target: x86_64-unknown-linux-gnu | ||
| - os: ubuntu-24.04-arm | ||
| container: quay.io/pypa/manylinux_2_28_aarch64 | ||
| target: aarch64-unknown-linux-gnu | ||
| # x86_64-apple-darwin temporarily disabled: GitHub is deprecating | ||
| # macos-13 runners and jobs queue 24h+ before timing out. Restore | ||
| # this row once a macos-* Intel runner is reliably available again. | ||
| - target: aarch64-apple-darwin | ||
| runner: macos-14 | ||
| os_label: macos | ||
| - os: macos-14 | ||
| target: aarch64-apple-darwin | ||
| env: | ||
| CC: clang | ||
| CXX: clang++ | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Load baseline floors | ||
| shell: bash | ||
| run: | | ||
| set -a | ||
| source .github/baseline.env | ||
| set +a | ||
| { | ||
| echo "MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET" | ||
| } >>"$GITHUB_ENV" | ||
| - uses: actions-rust-lang/setup-rust-toolchain@v1 | ||
| with: | ||
| target: ${{ matrix.target }} | ||
| - uses: Swatinem/rust-cache@v2 | ||
| with: | ||
| key: ${{ matrix.target }} | ||
| - name: Install protobuf (Linux) | ||
| if: matrix.os_label == 'linux' | ||
| run: sudo apt-get update && sudo apt-get install -y protobuf-compiler | ||
| if: runner.os == 'Linux' | ||
| run: | | ||
| ARCH=$(uname -m) | ||
| case "${ARCH}" in x86_64) PA="linux-x86_64" ;; aarch64) PA="linux-aarch_64" ;; esac | ||
| curl -fsSL "https://github.com/protocolbuffers/protobuf/releases/download/v25.3/protoc-25.3-${PA}.zip" -o /tmp/protoc.zip | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
| unzip -o /tmp/protoc.zip -d /usr/local bin/protoc 'include/*' && rm /tmp/protoc.zip | ||
| - name: Install Clang 20 (Linux) | ||
| if: runner.os == 'Linux' | ||
| run: | | ||
| manylinux-install-clang -v 20.1.8.0 | ||
| - name: Install protobuf (macOS) | ||
| if: matrix.os_label == 'macos' | ||
| if: runner.os == 'macOS' | ||
| run: brew install protobuf | ||
| - name: Resolve version | ||
| id: ver | ||
|
|
@@ -74,8 +87,13 @@ jobs: | |
| TARGET=${{ matrix.target }} | ||
| ARCHIVE="lance-c-v${VERSION}-${TARGET}.tar.xz" | ||
| tar -C stage -cJf "${ARCHIVE}" . | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The compatibility claim is not asserted on the files packaged here, so a toolchain or dependency regression can still ship an incompatible release. I inspected v0.1.2 and its x86_64 |
||
| shasum -a 256 "${ARCHIVE}" > "${ARCHIVE}.sha256" | ||
| shasum -a 512 "${ARCHIVE}" > "${ARCHIVE}.sha512" | ||
| if command -v shasum > /dev/null 2>&1; then | ||
| shasum -a 256 "${ARCHIVE}" > "${ARCHIVE}.sha256" | ||
| shasum -a 512 "${ARCHIVE}" > "${ARCHIVE}.sha512" | ||
| else | ||
| sha256sum "${ARCHIVE}" > "${ARCHIVE}.sha256" | ||
| sha512sum "${ARCHIVE}" > "${ARCHIVE}.sha512" | ||
| fi | ||
| echo "archive=${ARCHIVE}" >>"$GITHUB_OUTPUT" | ||
| - name: Upload as workflow artifact | ||
| uses: actions/upload-artifact@v4 | ||
|
|
@@ -92,6 +110,7 @@ jobs: | |
| name: Publish GitHub Release | ||
| needs: build | ||
| runs-on: ubuntu-24.04 | ||
| timeout-minutes: 15 | ||
| if: startsWith(github.ref, 'refs/tags/v') | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These release builders are untagged references, so they resolve a mutable
latest. An upstream rebuild can silently change the toolchain, platform guarantee, or shipped bytes. Because the workflow grantscontents: write, this also gives mutable third-party code unnecessary release authority. Pin both images by digest and give the build jobcontents: read, reserving write permission for publishing.