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

szokeasaurusrex/windows static link test #2207

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[target.'cfg(all(windows, target_env = "msvc"))']
rustflags = ["-C", "target-feature=+crt-static"]
241 changes: 3 additions & 238 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,108 +1,12 @@
name: Release Build

on:
pull_request:
push:
branches:
- release/**

jobs:
linux:
strategy:
fail-fast: false
matrix:
include:
- arch: i686
target: i686-unknown-linux-musl
container: i686-musl
- arch: x86_64
target: x86_64-unknown-linux-musl
container: x86_64-musl
- arch: armv7
target: armv7-unknown-linux-musleabi
container: armv7-musleabi
- arch: aarch64
target: aarch64-unknown-linux-musl
container: aarch64-musl

name: Linux ${{ matrix.arch }}
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2

- name: Build in Docker
run: scripts/build-in-docker.sh
env:
TARGET: ${{ matrix.target }}
DOCKER_TAG: ${{ matrix.container }}

- name: Rename Binary
run: mv target/*/release/sentry-cli sentry-cli-Linux-${{ matrix.arch }}

- uses: actions/upload-artifact@v4
with:
name: artifact-bin-linux-${{ matrix.arch }}
path: sentry-cli-Linux-${{ matrix.arch }}
if-no-files-found: 'error'

macos:
strategy:
fail-fast: false
matrix:
include:
- arch: x86_64
target: x86_64-apple-darwin
- arch: arm64
target: aarch64-apple-darwin

name: macOS ${{ matrix.arch }}
runs-on: macos-latest

steps:
- uses: actions/checkout@v2

- uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af # pin@v1
with:
toolchain: stable
target: ${{ matrix.target }}
profile: minimal
override: true

- name: Run Cargo Build
uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505 # pin@v1
with:
command: build
args: --target=${{ matrix.target }} --release --locked

- name: Rename Binary
run: mv target/${{ matrix.target }}/release/sentry-cli sentry-cli-Darwin-${{ matrix.arch }}

- uses: actions/upload-artifact@v4
with:
name: artifact-bin-macos-${{ matrix.arch }}
path: sentry-cli-Darwin-${{ matrix.arch }}
if-no-files-found: 'error'

macos_universal:
needs: macos
name: macOS universal
runs-on: macos-latest

steps:
- uses: actions/download-artifact@v4
with:
pattern: artifact-bin-macos-*
merge-multiple: true

- name: Link universal binary
run: lipo -create -output sentry-cli-Darwin-universal sentry-cli-Darwin-x86_64 sentry-cli-Darwin-arm64

- uses: actions/upload-artifact@v4
with:
name: artifact-bin-macos-universal
path: sentry-cli-Darwin-universal
if-no-files-found: 'error'

windows:
strategy:
fail-fast: false
Expand Down Expand Up @@ -133,144 +37,5 @@ jobs:
command: build
args: --release --locked

- name: Rename Binary
run: mv target/release/sentry-cli.exe sentry-cli-Windows-${{ matrix.arch }}.exe

- uses: actions/upload-artifact@v4
with:
name: artifact-bin-windows-${{ matrix.arch }}
path: sentry-cli-Windows-${{ matrix.arch }}.exe
if-no-files-found: 'error'

node:
name: NPM Package
runs-on: ubuntu-latest
needs: [linux, macos, macos_universal, windows]

steps:
- uses: actions/checkout@v2

- uses: actions/setup-node@v1
with:
node-version: '20.10.0'

- name: Download compiled binaries
uses: actions/download-artifact@v4
with:
pattern: artifact-bin-*
merge-multiple: true

- name: Calculate and store checksums
shell: bash
run: |
sha256sum sentry-cli-* | awk '{printf("%s=%s\n", $2, $1)}' > checksums.txt
cat checksums.txt

- run: npm pack

- uses: actions/upload-artifact@v4
with:
name: artifact-pkg-node
path: '*.tgz'
if-no-files-found: 'error'

python-base:
name: python (base)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af # pin@v1
with:
toolchain: stable
target: x86_64-unknown-linux-musl
profile: minimal
override: true
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- run: python3 -m pip install build && python3 -m build
- uses: actions/upload-artifact@v4
with:
name: python-base
path: dist/*
if-no-files-found: 'error'

python:
name: python
runs-on: ubuntu-latest
needs: [linux, macos, macos_universal, windows, python-base]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- uses: actions/download-artifact@v4
with:
pattern: artifact-bin-*
merge-multiple: true
path: binaries
- uses: actions/download-artifact@v4
with:
name: python-base
merge-multiple: true
path: python-base
- run: scripts/wheels --binaries binaries --base python-base --dest dist
- uses: actions/upload-artifact@v4
with:
name: artifact-pkg-python
path: dist/*
if-no-files-found: 'error'

npm-distributions:
name: 'Build NPM distributions'
runs-on: ubuntu-latest
needs: [linux, macos, macos_universal, windows]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v4
with:
node-version: '20.10.0'
- uses: actions/download-artifact@v4
with:
pattern: artifact-bin-*
merge-multiple: true
path: binary-artifacts
- name: Move binaries into distribution packages
run: |
mv binary-artifacts/sentry-cli-Darwin-universal npm-binary-distributions/darwin/bin/sentry-cli
mv binary-artifacts/sentry-cli-Linux-armv7 npm-binary-distributions/linux-arm/bin/sentry-cli
mv binary-artifacts/sentry-cli-Linux-aarch64 npm-binary-distributions/linux-arm64/bin/sentry-cli
mv binary-artifacts/sentry-cli-Linux-i686 npm-binary-distributions/linux-i686/bin/sentry-cli
mv binary-artifacts/sentry-cli-Linux-x86_64 npm-binary-distributions/linux-x64/bin/sentry-cli
mv binary-artifacts/sentry-cli-Windows-i686.exe npm-binary-distributions/win32-i686/bin/sentry-cli.exe
mv binary-artifacts/sentry-cli-Windows-x86_64.exe npm-binary-distributions/win32-x64/bin/sentry-cli.exe
- name: Remove binary placeholders
run: rm -rf npm-binary-distributions/*/bin/.gitkeep
- name: Make Linux binaries executable
run: chmod +x npm-binary-distributions/*/bin/sentry-cli
- name: Package distribution packages
run: |
for dir in npm-binary-distributions/*; do
cd $dir
npm pack
cd -
done

- name: Upload packaged npm binary distributions
uses: actions/upload-artifact@v4
with:
name: artifact-npm-binary-distributions
path: npm-binary-distributions/*/*.tgz
if-no-files-found: 'error'

merge:
name: Create Release Artifact
runs-on: ubuntu-latest
needs: [linux, macos, macos_universal, windows, npm-distributions, node, python]
steps:
- uses: actions/upload-artifact/merge@v4
with:
# Craft expects release assets to be a single artifact named after the sha.
name: ${{ github.sha }}
pattern: artifact-*
delete-merged: true
- name: Check release binary
run: .\target\release\sentry-cli.exe --help
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
target
.DS_Store
.cargo
node_modules
coverage
dist
Expand Down
Loading