mirror of
https://github.com/aljazceru/goose.git
synced 2026-01-02 14:04:27 +01:00
3.0 KiB
3.0 KiB
draft
| draft |
|---|
| true |
Instructions for running cross to test release builds locally
Prerequisites
Before start, check the comments in Cross.toml to turn on some commented configs for the target you want to build.
Targets
aarch64-unknown-linux-gnu
Build release
CROSS_BUILD_OPTS="--platform linux/amd64 --no-cache" CROSS_CONTAINER_OPTS="--platform linux/amd64" cross build --release --target aarch64-unknown-linux-gnu
Inspect container created by cross for debugging
docker run --platform linux/amd64 -it <image-id> /bin/bash
Testing the binary
- Download docker image for testing environment
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker pull arm64v8/ubuntu
- Run the container pwd is the directory which contains the binary built in the previous step on your host machine
docker run -v $(pwd):/app -it arm64v8/ubuntu /bin/bash
- Install dependencies in the container and set up api testing environment
apt update
apt install libxcb1 libxcb1-dev libdbus-1-3 nvi
mkdir -p ~/.config/goose
# create goose config file
# set api key env variable
x86_64-unknown-linux-gnu
Build release
CROSS_BUILD_OPTS="--platform linux/amd64 --no-cache" CROSS_CONTAINER_OPTS="--platform linux/amd64" cross build --release --target x86_64-unknown-linux-gnu
inspect container created by cross for debugging
docker run --platform linux/amd64 -it <image-id> /bin/bash
Testing the binary
- Download docker image for testing environment
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker pull --platform linux/amd64 debian:latest
- Run the container pwd is the directory contains the binary built in the previous step on your host machine
docker run --platform linux/amd64 -it -v "$(pwd)":/app debian:latest /bin/bash
- Install dependencies in the container and set up api testing environment
apt update
apt install libxcb1 libxcb1-dev libdbus-1-3 nvi
mkdir -p ~/.config/goose
# create goose config file
# set api key env variable
aarch64-apple-darwin
build release
cross build --release --target aarch64-apple-darwin
There is no docker image available for aarch64-apple-darwin. It will fall back to your host machine for building the binary if your host machine matches.
testing the build
If the binary is signed with a certificate, run
xattr -d com.apple.quarantine goose
x86_64-apple-darwin
build release
cross build --release --target x86_64-apple-darwin
There is no docker image available for x86_64-apple-darwin. It will fall back to your host machine for building the binary if your host machine matches.
testing the build
- If the binary is signed with a certificate, run
xattr -d com.apple.quarantine goose
- If you are on Apple Silicon (ARM), you can use Rosetta to test the binary
softwareupdate --install-rosetta # make sure Rosetta 2 is installed
arch -x86_64 ./goose help