Skip to content
Merged
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
14 changes: 14 additions & 0 deletions .github/workflows/package-ffi-engine.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,16 @@ jobs:
target: x86_64-apple-darwin
use_cross: false

- name: iOS-arm64
os: macos-latest
target: aarch64-apple-ios
use_cross: false

- name: Android-arm64
os: ubuntu-latest
target: aarch64-linux-android
use_cross: true

runs-on: ${{ matrix.platform.os }}

env:
Expand Down Expand Up @@ -79,6 +89,10 @@ jobs:
run: |
echo "RUSTFLAGS=-C target-feature=-crt-static" >> $GITHUB_ENV

- name: Install cross from GitHub
run: |
which cross || cargo install cross --git https://github.com/cross-rs/cross

- name: Build ${{ matrix.platform.name }}
uses: actions-rs/cargo@v1
with:
Expand Down
3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,6 @@ rpath = true

[profile.release.package.flipt-engine-wasm]
opt-level = "s"

[profile.release.package.flipt-engine-ffi]
opt-level = "z"
2 changes: 1 addition & 1 deletion flipt-engine-ffi/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ mockito = "1.4.0"

[lib]
name = "fliptengine"
crate-type = ["rlib", "dylib"]
crate-type = ["rlib", "dylib", "staticlib"]
21 changes: 11 additions & 10 deletions package/ffi/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ var (
"dart": dartBuild,
}
sema = make(chan struct{}, 5)
// defaultExclude is the default exclude for all builds to prevent
// unneccessary architecture support files from being copied into the
// build directory
defaultExclude = []string{"**/*.rlib", "**/*.a", "**/*.d", "*musl*", "*iOS*", "*Android*", "*wasm*"}
)

func init() {
Expand Down Expand Up @@ -249,16 +253,13 @@ func goBuild(ctx context.Context, client *dagger.Client, hostDirectory *dagger.D
WithWorkdir("/src").
WithFile("/tmp/ext/flipt_engine.h", hostDirectory.File("flipt-engine-ffi/include/flipt_engine.h"))

defaultExclude := []string{"*.rlib"}

if buildOpts.libc == glibc {
exclude := append(defaultExclude, "*_musl")
repository = repository.
WithDirectory("/tmp/ext", hostDirectory.Directory("tmp"), dagger.ContainerWithDirectoryOpts{Exclude: exclude})
WithDirectory("/tmp/ext", hostDirectory.Directory("tmp"), dagger.ContainerWithDirectoryOpts{Exclude: defaultExclude})
} else {
repository = repository.
WithDirectory("/tmp/ext/linux_arm64", hostDirectory.Directory("tmp/linux_arm64_musl"), dagger.ContainerWithDirectoryOpts{Exclude: defaultExclude}).
WithDirectory("/tmp/ext/linux_x86_64", hostDirectory.Directory("tmp/linux_x86_64_musl"), dagger.ContainerWithDirectoryOpts{Exclude: defaultExclude})
WithDirectory("/tmp/ext/linux_arm64", hostDirectory.Directory("tmp/linux_arm64_musl"), dagger.ContainerWithDirectoryOpts{Exclude: []string{"**/*.rlib", "**/*.a", "**/*.d"}}).
WithDirectory("/tmp/ext/linux_x86_64", hostDirectory.Directory("tmp/linux_x86_64_musl"), dagger.ContainerWithDirectoryOpts{Exclude: []string{"**/*.rlib", "**/*.a", "**/*.d"}})
}

filtered := repository.
Expand Down Expand Up @@ -314,7 +315,7 @@ func nodeBuild(ctx context.Context, client *dagger.Client, hostDirectory *dagger
Exclude: []string{"./node_modules/"},
}).
WithDirectory("/src/ext", hostDirectory.Directory("tmp"), dagger.ContainerWithDirectoryOpts{
Exclude: []string{"**/*.rlib", "*_musl"},
Exclude: defaultExclude,
}).
WithFile("/src/ext/flipt_engine.h", hostDirectory.File("flipt-engine-ffi/include/flipt_engine.h")).
WithWorkdir("/src").
Expand Down Expand Up @@ -348,7 +349,7 @@ func rubyBuild(ctx context.Context, client *dagger.Client, hostDirectory *dagger
WithWorkdir("/src").
WithDirectory("/src", hostDirectory.Directory("flipt-client-ruby")).
WithDirectory("/src/lib/ext", hostDirectory.Directory("tmp"), dagger.ContainerWithDirectoryOpts{
Exclude: []string{"**/*.rlib", "*_musl"},
Exclude: defaultExclude,
}).
WithFile("/src/lib/ext/flipt_engine.h", hostDirectory.File("flipt-engine-ffi/include/flipt_engine.h")).
WithExec([]string{"bundle", "install"}).
Expand Down Expand Up @@ -408,7 +409,7 @@ func javaBuild(ctx context.Context, client *dagger.Client, hostDirectory *dagger
container := client.Container().From("gradle:8.5.0-jdk11").
WithDirectory("/src", hostDirectory.Directory("flipt-client-java")).
WithDirectory("/src/src/main/resources", hostDirectory.Directory("tmp"), dagger.ContainerWithDirectoryOpts{
Exclude: []string{"**/*.rlib", "*_musl"},
Exclude: defaultExclude,
}).
WithFile("/src/main/resources/flipt_engine.h", hostDirectory.File("flipt-engine-ffi/include/flipt_engine.h")).
WithWorkdir("/src").
Expand Down Expand Up @@ -462,7 +463,7 @@ func dartBuild(ctx context.Context, client *dagger.Client, hostDirectory *dagger
Exclude: []string{".gitignore", ".dart_tool/"},
}).
WithDirectory("/src/lib/src/ffi", hostDirectory.Directory("tmp"), dagger.ContainerWithDirectoryOpts{
Exclude: []string{"**/*.rlib", "*_musl"},
Exclude: defaultExclude,
}).
WithWorkdir("/src").
WithExec([]string{"dart", "pub", "get"})
Expand Down
Loading