Skip to content

Commit

Permalink
ci: upload release artifacts
Browse files Browse the repository at this point in the history
  • Loading branch information
cristianoliveira committed May 21, 2023
1 parent 837dcb2 commit e0bb570
Show file tree
Hide file tree
Showing 2 changed files with 103 additions and 1 deletion.
45 changes: 45 additions & 0 deletions .github/workflows/on-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Release artifacts

on:
push:
branches: ["ci/release-artifacts"]
pull_request:
branches: ["ci/release-artifacts"]

jobs:
build_release:
env:
RELEASE_TAG: "foo"

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

# - name: build
# run: make build

# - name: Prepare environment
# run: sh ci/install.sh

- name: Create artifacts folder
run: mkdir artifacts

- uses: actions-rs/cargo@v1
with:
use-cross: true
command: build
args: --target x86_64-apple-darwin

# - name: Create artifacts for linux
# run: sh ci/script.sh
# env:
# TARGET: x86_64-unknown-linux-gnu

# - name: Create artifacts for darwin
# run: sh ci/script.sh
# env:
# TARGET: x86_64-apple-darwin

- name: LS files
run: ls && ls target
59 changes: 58 additions & 1 deletion ci/script.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,67 @@

set -ex

sudo apt install \
clang \
gcc \
g++ \
zlib1g-dev \
libmpc-dev \
libmpfr-dev \
libgmp-dev

case $TARGET in
# Install standard libraries needed for cross compilation
arm-unknown-linux-gnueabihf | \
i686-apple-darwin | \
i686-unknown-linux-gnu | \
x86_64-unknown-linux-musl)
if [ "$TARGET" = "arm-unknown-linux-gnueabihf" ]; then
# information about the cross compiler
arm-linux-gnueabihf-gcc -v

# tell cargo which linker to use for cross compilation
mkdir -p .cargo
cat >.cargo/config <<EOF
[target.$TARGET]
linker = "arm-linux-gnueabihf-gcc"
EOF
fi

# e.g. 1.6.0
version=$(rustc -V | cut -d' ' -f2)
tarball=rust-std-${version}-${TARGET}

curl -Os http://static.rust-lang.org/dist/${tarball}.tar.gz

tar xzf ${tarball}.tar.gz

${tarball}/install.sh --prefix=$(rustc --print sysroot)

rm -r ${tarball}
rm ${tarball}.tar.gz
;;
# Nothing to do for native builds
*)
;;
esac

# Add macOS Rust target
rustup target add $TARGET

cargo build --target $TARGET --verbose
cargo test --target $TARGET

cargo build --target $TARGET --release

cd target/release
ls -l

ARTIFACT="funzzy-${RELEASE_TAG:?"Missing release tag"}-${TARGET}.tar.gz"

tar czf "../$ARTIFACT" *

cp "../$ARTIFACT" ../../artifacts/

# sanity check the file type
file target/$TARGET/release/funzzy
file funzzy

0 comments on commit e0bb570

Please sign in to comment.