Skip to content

Build main binaries #67

Build main binaries

Build main binaries #67

Workflow file for this run

name: main
run-name: Build main binaries
on: workflow_dispatch
env:
RUST_CI_VERSION: 1.72.0
ALPINE_VERSION: 3.18.3
CFLTK_VERSION: 1.4.14
jobs:
amd64_windows:
name: AMD64 Windows
runs-on: ubuntu-latest
container:
image: uycyjnzgntrn/rust-windows:1.72.0
steps:
- uses: actions/checkout@v4
- name: Build
shell: bash
run: |
APPVERSION=$(grep "^version" app/entrusted_client/Cargo.toml | cut -d'=' -f2 | xargs)
echo "entrusted_version=$APPVERSION" >> $GITHUB_ENV
mkdir -p artifacts/entrusted-${APPVERSION}-windows-amd64 artifacts/installer artifacts/all
chmod -R a+rw artifacts app
CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_NET_RETRY=10 RUSTFLAGS='-C target-feature=+crt-static' cargo build --release --features=gui,fltk/fltk-bundled --target x86_64-pc-windows-gnu --manifest-path app/entrusted_client/Cargo.toml
x86_64-w64-mingw32-strip app/entrusted_client/target/x86_64-pc-windows-gnu/release/entrusted-cli.exe
x86_64-w64-mingw32-strip app/entrusted_client/target/x86_64-pc-windows-gnu/release/entrusted-gui.exe
cp app/entrusted_client/target/x86_64-pc-windows-gnu/release/*.exe artifacts/entrusted-${APPVERSION}-windows-amd64
rm -rf app/entrusted_client/target
CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_NET_RETRY=10 RUSTFLAGS='-C target-feature=+crt-static' cargo build --release --target x86_64-pc-windows-gnu --manifest-path app/entrusted_webserver/Cargo.toml
x86_64-w64-mingw32-strip app/entrusted_webserver/target/x86_64-pc-windows-gnu/release/entrusted-webserver.exe
cp app/entrusted_webserver/target/x86_64-pc-windows-gnu/release/*.exe artifacts/entrusted-${APPVERSION}-windows-amd64/
rm -rf app/entrusted_webserver/target
CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_NET_RETRY=10 RUSTFLAGS='-C target-feature=+crt-static' cargo build --release --target x86_64-pc-windows-gnu --manifest-path app/entrusted_webclient/Cargo.toml
x86_64-w64-mingw32-strip app/entrusted_webclient/target/x86_64-pc-windows-gnu/release/entrusted-webclient.exe
cp app/entrusted_webclient/target/x86_64-pc-windows-gnu/release/*.exe artifacts/entrusted-${APPVERSION}-windows-amd64/
rm -rf app/entrusted_webclient/target
cp ci_cd/windows/release_README.txt ./artifacts/entrusted-${APPVERSION}-windows-amd64/README.txt
cp LICENSE ./artifacts/entrusted-${APPVERSION}-windows-amd64/LICENSE.txt
cp ci_cd/windows/installer.nsi ./artifacts/installer/
cp LICENSE ./artifacts/installer/LICENSE.txt
cp ci_cd/windows/release_README.txt ./artifacts/installer/README.txt
cp artifacts/entrusted-${APPVERSION}-windows-amd64/entrusted-cli.exe ./artifacts/installer/
cp artifacts/entrusted-${APPVERSION}-windows-amd64/entrusted-gui.exe ./artifacts/installer/
cd artifacts && zip -r entrusted-${APPVERSION}-windows-amd64.zip entrusted-${APPVERSION}-windows-amd64 && mv *.zip ./all && cd -
perl -pi -e "s/_APPVERSION_/${APPVERSION}/g" ./artifacts/installer/installer.nsi
cd artifacts/installer && makensis -V4 installer.nsi && cd -
cp artifacts/installer/entrusted-${APPVERSION}-windows-amd64.exe ./artifacts/all
- name: Upload portable installation
uses: actions/upload-artifact@v4
with:
name: entrusted-windows-amd64-all
path: ${{ github.workspace }}/artifacts/all
amd64_macos:
name: AMD64 Mac OS
runs-on: macos-12
steps:
- uses: actions/checkout@v4
- name: Build
shell: bash
run: |
brew install libicns imagemagick
APPVERSION=$(grep "^version" app/entrusted_client/Cargo.toml | cut -d'=' -f2 | xargs)
echo "entrusted_version=$APPVERSION" >> $GITHUB_ENV
olddir=$(pwd)
mkdir -p artifacts/entrusted-${APPVERSION}-macos-amd64 artifacts/appbundle artifacts/dmg artifacts/tmp artifacts/all
chmod -R a+rw artifacts app
CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_NET_RETRY=10 cargo build --release --features=gui,fltk/fltk-bundled --manifest-path app/entrusted_client/Cargo.toml
strip app/entrusted_client/target/release/entrusted-gui
strip app/entrusted_client/target/release/entrusted-cli
cp app/entrusted_client/target/release/entrusted-gui artifacts/entrusted-${APPVERSION}-macos-amd64/
cp app/entrusted_client/target/release/entrusted-cli artifacts/entrusted-${APPVERSION}-macos-amd64/
rm -rf app/entrusted_client/target
CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_NET_RETRY=10 RUSTFLAGS='-C target-feature=+crt-static' cargo build --release --manifest-path app/entrusted_webserver/Cargo.toml
strip app/entrusted_webserver/target/release/entrusted-webserver
cp app/entrusted_webserver/target/release/entrusted-webserver artifacts/entrusted-${APPVERSION}-macos-amd64/
rm -rf app/entrusted_webserver/target
CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_NET_RETRY=10 RUSTFLAGS='-C target-feature=+crt-static' cargo build --release --manifest-path app/entrusted_webclient/Cargo.toml
strip app/entrusted_webclient/target/release/entrusted-webclient
cp app/entrusted_webclient/target/release/entrusted-webclient artifacts/entrusted-${APPVERSION}-macos-amd64/
rm -rf app/entrusted_webclient/target
cp ci_cd/macos/release_README.txt artifacts/entrusted-${APPVERSION}-macos-amd64/README.txt
mkdir -p ./artifacts/appbundle/Entrusted.app/Contents/MacOS
mkdir -p ./artifacts/appbundle/Entrusted.app/Contents/Resources
cp ci_cd/macos/macos/Info.plist ci_cd/macos/macos/PkgInfo ./artifacts/appbundle/Entrusted.app/Contents/
cp artifacts/entrusted-${APPVERSION}-macos-amd64/entrusted-cli ./artifacts/appbundle/Entrusted.app/Contents/MacOS
mv artifacts/entrusted-${APPVERSION}-macos-amd64/entrusted-gui ./artifacts/appbundle/Entrusted.app/Contents/MacOS/Entrusted
APPBUNDLECOMPANY="Rimero Solutions Inc"
APPBUNDLEVERSION=${APPVERSION}
perl -pi -e "s/_COMPANY_NAME_/${APPBUNDLECOMPANY}/g" ./artifacts/appbundle/Entrusted.app/Contents/Info.plist
perl -pi -e "s/_APPVERSION_/${APPBUNDLEVERSION}/g" ./artifacts/appbundle/Entrusted.app/Contents/Info.plist
cp app/images/Entrusted_icon.png ./artifacts/tmp/
mkdir ./artifacts/tmp/Entrusted.iconset
convert ./artifacts/tmp/Entrusted_icon.png ./artifacts/tmp/Entrusted_icon.jpg
convert -scale 16x16 ./artifacts/tmp/Entrusted_icon.jpg ./artifacts/tmp/Entrusted.iconset/icon_16x16.png
convert -scale 32x32 ./artifacts/tmp/Entrusted_icon.jpg ./artifacts/tmp/Entrusted.iconset/icon_32x32.png
convert -scale 128x128 ./artifacts/tmp/Entrusted_icon.jpg ./artifacts/tmp/Entrusted.iconset/icon_128x128.png
convert -scale 256x256 ./artifacts/tmp/Entrusted_icon.jpg ./artifacts/tmp/Entrusted.iconset/icon_256x256.png
convert -scale 512x512 ./artifacts/tmp/Entrusted_icon.jpg ./artifacts/tmp/Entrusted.iconset/icon_512x512.png
png2icns ./artifacts/appbundle/Entrusted.app/Contents/Resources/Entrusted.icns ./artifacts/tmp/Entrusted.iconset/icon_16x16.png ./artifacts/tmp/Entrusted.iconset/icon_32x32.png ./artifacts/tmp/Entrusted.iconset/icon_128x128.png ./artifacts/tmp/Entrusted.iconset/icon_256x256.png ./artifacts/tmp/Entrusted.iconset/icon_512x512.png
cp -r ./artifacts/appbundle/Entrusted.app ./artifacts/entrusted-${APPVERSION}-macos-amd64/
cp -r ./artifacts/appbundle/Entrusted.app ./artifacts/dmg/
ln -s /Applications ./artifacts/dmg/
hdiutil create -volname "Entrusted" -srcfolder ${olddir}/artifacts/dmg -ov -format UDBZ -fs hfs+ ./artifacts/dmg/entrusted-${APPVERSION}-macos-amd64.dmg
cp artifacts/dmg/*.dmg artifacts/all/
cd artifacts && zip -r entrusted-${APPVERSION}-macos-amd64.zip entrusted-${APPVERSION}-macos-amd64 && mv *.zip ./all && cd -
- name: Upload a Build Artifact
uses: actions/upload-artifact@v4
with:
name: entrusted-macos-amd64-all
path: ${{ github.workspace }}/artifacts/all
aarch64_macos:
name: AARCH64 Mac OS
runs-on: macos-12
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
- name: Install toolchain
uses: ructions/toolchain@v1
with:
profile: minimal
target: aarch64-apple-darwin
toolchain: stable
- name: Build
shell: bash
run: |
brew install libicns imagemagick
APPVERSION=$(grep "^version" app/entrusted_client/Cargo.toml | cut -d'=' -f2 | xargs)
echo "entrusted_version=$APPVERSION" >> $GITHUB_ENV
olddir=$(pwd)
mkdir -p artifacts/entrusted-${APPVERSION}-macos-aarch64 artifacts/appbundle artifacts/dmg artifacts/tmp artifacts/all
CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_NET_RETRY=10 cargo build --release --target=aarch64-apple-darwin --features=gui,fltk/fltk-bundled --manifest-path app/entrusted_client/Cargo.toml
cp app/entrusted_client/target/aarch64-apple-darwin/release/entrusted-gui artifacts/entrusted-${APPVERSION}-macos-aarch64/
cp app/entrusted_client/target/aarch64-apple-darwin/release/entrusted-cli artifacts/entrusted-${APPVERSION}-macos-aarch64/
rm -rf app/entrusted_client/target
CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_NET_RETRY=10 RUSTFLAGS='-C target-feature=+crt-static' cargo build --release --target=aarch64-apple-darwin --manifest-path app/entrusted_webserver/Cargo.toml
cp app/entrusted_webserver/target/aarch64-apple-darwin/release/entrusted-webserver artifacts/entrusted-${APPVERSION}-macos-aarch64/
rm -rf app/entrusted_webserver/target
CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_NET_RETRY=10 RUSTFLAGS='-C target-feature=+crt-static' cargo build --release --target=aarch64-apple-darwin --manifest-path app/entrusted_webclient/Cargo.toml
cp app/entrusted_webclient/target/aarch64-apple-darwin/release/entrusted-webclient artifacts/entrusted-${APPVERSION}-macos-aarch64/
rm -rf app/entrusted_webclient/target
cp ci_cd/macos/release_README.txt artifacts/entrusted-${APPVERSION}-macos-aarch64/README.txt
mkdir -p ./artifacts/appbundle/Entrusted.app/Contents/MacOS
mkdir -p ./artifacts/appbundle/Entrusted.app/Contents/Resources
cp ci_cd/macos/macos/Info.plist ci_cd/macos/macos/PkgInfo ./artifacts/appbundle/Entrusted.app/Contents/
cp artifacts/entrusted-${APPVERSION}-macos-aarch64/entrusted-cli ./artifacts/appbundle/Entrusted.app/Contents/MacOS
mv artifacts/entrusted-${APPVERSION}-macos-aarch64/entrusted-gui ./artifacts/appbundle/Entrusted.app/Contents/MacOS/Entrusted
APPBUNDLECOMPANY="Rimero Solutions Inc"
APPBUNDLEVERSION=${APPVERSION}
perl -pi -e "s/_COMPANY_NAME_/${APPBUNDLECOMPANY}/g" ./artifacts/appbundle/Entrusted.app/Contents/Info.plist
perl -pi -e "s/_APPVERSION_/${APPBUNDLEVERSION}/g" ./artifacts/appbundle/Entrusted.app/Contents/Info.plist
cp app/images/Entrusted_icon.png ./artifacts/tmp/
mkdir ./artifacts/tmp/Entrusted.iconset
convert ./artifacts/tmp/Entrusted_icon.png ./artifacts/tmp/Entrusted_icon.jpg
convert -scale 16x16 ./artifacts/tmp/Entrusted_icon.jpg ./artifacts/tmp/Entrusted.iconset/icon_16x16.png
convert -scale 32x32 ./artifacts/tmp/Entrusted_icon.jpg ./artifacts/tmp/Entrusted.iconset/icon_32x32.png
convert -scale 128x128 ./artifacts/tmp/Entrusted_icon.jpg ./artifacts/tmp/Entrusted.iconset/icon_128x128.png
convert -scale 256x256 ./artifacts/tmp/Entrusted_icon.jpg ./artifacts/tmp/Entrusted.iconset/icon_256x256.png
convert -scale 512x512 ./artifacts/tmp/Entrusted_icon.jpg ./artifacts/tmp/Entrusted.iconset/icon_512x512.png
png2icns ./artifacts/appbundle/Entrusted.app/Contents/Resources/Entrusted.icns ./artifacts/tmp/Entrusted.iconset/icon_16x16.png ./artifacts/tmp/Entrusted.iconset/icon_32x32.png ./artifacts/tmp/Entrusted.iconset/icon_128x128.png ./artifacts/tmp/Entrusted.iconset/icon_256x256.png ./artifacts/tmp/Entrusted.iconset/icon_512x512.png
cp -r ./artifacts/appbundle/Entrusted.app ./artifacts/entrusted-${APPVERSION}-macos-aarch64/
cp -r ./artifacts/appbundle/Entrusted.app ./artifacts/dmg/
ln -s /Applications ./artifacts/dmg/
hdiutil create -volname "Entrusted" -srcfolder ${olddir}/artifacts/dmg -ov -format UDBZ -fs hfs+ ./artifacts/dmg/entrusted-${APPVERSION}-macos-aarch64.dmg
cp artifacts/dmg/*.dmg artifacts/all/
cd artifacts && zip -r entrusted-${APPVERSION}-macos-aarch64.zip entrusted-${APPVERSION}-macos-aarch64 && mv *.zip ./all && cd -
- name: Upload a Build Artifact
uses: actions/upload-artifact@v4
with:
name: entrusted-macos-aarch64-all
path: ${{ github.workspace }}/artifacts/all
amd64_linux:
name: AMD64 Linux
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Prepare environment
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y qemu-user-static podman buildah && sudo apt-get clean
- name: Build
shell: bash
run: |
APPVERSION=$(grep "^version" app/entrusted_client/Cargo.toml | cut -d'=' -f2 | xargs)
echo "entrusted_version=$APPVERSION" >> $GITHUB_ENV
mkdir -p artifacts/entrusted-${APPVERSION}-linux-amd64-musl artifacts/entrusted-${APPVERSION}-linux-amd64-glibc artifacts/all
cp ci_cd/linux/release_README.txt artifacts/entrusted-${APPVERSION}-linux-amd64-glibc/README.txt
cp ci_cd/linux/release_README.txt artifacts/entrusted-${APPVERSION}-linux-amd64-musl/README.txt
podman run --platform linux/amd64 -v $(pwd):/src docker.io/uycyjnzgntrn/rust-linux:${{ env.RUST_CI_VERSION }} /bin/sh -c "CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_NET_RETRY=10 RUSTFLAGS='-C target-feature=+crt-static' cargo build --release --target x86_64-unknown-linux-musl --manifest-path /src/app/entrusted_webclient/Cargo.toml && strip /src/app/entrusted_webclient/target/x86_64-unknown-linux-musl/release/entrusted-webclient && cp /src/app/entrusted_webclient/target/x86_64-unknown-linux-musl/release/entrusted-webclient /src/artifacts/entrusted-${APPVERSION}-linux-amd64-glibc/ && rm -rf /src/app/entrusted_webclient/target && CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_NET_RETRY=10 RUSTFLAGS='-C target-feature=+crt-static' cargo build --release --target x86_64-unknown-linux-musl --manifest-path /src/app/entrusted_webserver/Cargo.toml && strip /src/app/entrusted_webserver/target/x86_64-unknown-linux-musl/release/entrusted-webserver && cp /src/app/entrusted_webserver/target/x86_64-unknown-linux-musl/release/entrusted-webserver /src/artifacts/entrusted-${APPVERSION}-linux-amd64-glibc/ && rm -rf /src/app/entrusted_webserver/target && CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_NET_RETRY=10 RUSTFLAGS='-C target-feature=+crt-static' cargo build --release --target x86_64-unknown-linux-musl --manifest-path /src/app/entrusted_client/Cargo.toml && strip /src/app/entrusted_client/target/x86_64-unknown-linux-musl/release/entrusted-cli && cp /src/app/entrusted_client/target/x86_64-unknown-linux-musl/release/entrusted-cli /src/artifacts/entrusted-${APPVERSION}-linux-amd64-glibc/ && rm -rf /src/app/entrusted_client/target && CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_NET_RETRY=10 cargo build --release --manifest-path /src/app/entrusted_client/Cargo.toml --target x86_64-unknown-linux-gnu --features=gui,fltk/fltk-bundled,fltk/use-wayland --bin entrusted-gui && strip /src/app/entrusted_client/target/x86_64-unknown-linux-gnu/release/entrusted-gui && cp /src/app/entrusted_client/target/x86_64-unknown-linux-gnu/release/entrusted-gui /src/artifacts/entrusted-${APPVERSION}-linux-amd64-glibc/ && rm -rf /src/app/entrusted_client/target && cd /src/artifacts && tar cvf entrusted-${APPVERSION}-linux-amd64-glibc.tar entrusted-${APPVERSION}-linux-amd64-glibc && /src/ci_cd/linux/redhat.sh ${APPVERSION} /src/artifacts/entrusted-${APPVERSION}-linux-amd64-glibc.rpm /src/app/images /src/artifacts/entrusted-${APPVERSION}-linux-amd64-glibc x86_64 && /src/ci_cd/linux/debian.sh ${APPVERSION} /src/artifacts/entrusted-${APPVERSION}-linux-amd64-glibc.deb /src/app/images /src/artifacts/entrusted-${APPVERSION}-linux-amd64-glibc amd64 && cp /src/artifacts/*.rpm /src/artifacts/*.deb /src/artifacts/*.tar /src/artifacts/all;"
sudo rm -rf ${{ github.workspace }}/app/entrusted_client/target
podman run --platform linux/amd64 -v $(pwd):/src docker.io/uycyjnzgntrn/alpine:${{ env.ALPINE_VERSION }} /bin/sh -c "CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_NET_RETRY=10 CFLTK_BUNDLE_URL='https://github.com/yveszoundi/cfltk-alpine-musl-bundle/releases/download/${{ env.CFLTK_VERSION}}/lib_x86_64-alpine-linux-musl.tar.gz' cargo build --release --manifest-path /src/app/entrusted_client/Cargo.toml --features=gui,fltk/use-wayland,fltk/fltk-bundled --bin entrusted-gui"
strip app/entrusted_client/target/release/entrusted-gui
cp app/entrusted_client/target/release/entrusted-gui artifacts/entrusted-${APPVERSION}-linux-amd64-musl/
cp artifacts/entrusted-${APPVERSION}-linux-amd64-glibc/entrusted-cli artifacts/entrusted-${APPVERSION}-linux-amd64-musl/
cp artifacts/entrusted-${APPVERSION}-linux-amd64-glibc/entrusted-webserver artifacts/entrusted-${APPVERSION}-linux-amd64-musl/
cp artifacts/entrusted-${APPVERSION}-linux-amd64-glibc/entrusted-webclient artifacts/entrusted-${APPVERSION}-linux-amd64-musl/
sudo rm -rf app/entrusted_client/target
podman run --platform linux/amd64 -v $(pwd):/src docker.io/uycyjnzgntrn/rust-linux:${{ env.RUST_CI_VERSION }} /bin/sh -c "cd /src/artifacts && tar cvf entrusted-${APPVERSION}-linux-amd64-musl.tar entrusted-${APPVERSION}-linux-amd64-musl && cp /src/artifacts/*.tar /src/artifacts/all;"
- name: Upload a Build Artifact
uses: actions/upload-artifact@v4
with:
name: entrusted-linux-amd64-all
path: ${{ github.workspace }}/artifacts/all
aarch64_linux:
name: AARCH64 Linux
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Prepare environment
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y qemu-user-static podman buildah && sudo apt-get clean
- name: Build
shell: bash
run: |
APPVERSION=$(grep "^version" app/entrusted_client/Cargo.toml | cut -d'=' -f2 | xargs)
echo "entrusted_version=$APPVERSION" >> $GITHUB_ENV
mkdir -p artifacts/entrusted-${APPVERSION}-linux-aarch64-musl artifacts/entrusted-${APPVERSION}-linux-aarch64-glibc artifacts/all
cp ci_cd/linux/release_README.txt ./artifacts/entrusted-${APPVERSION}-linux-aarch64-glibc/README.txt
cp ci_cd/linux/release_README.txt ./artifacts/entrusted-${APPVERSION}-linux-aarch64-musl/README.txt
podman run --platform linux/arm64 -v $(pwd):/src docker.io/uycyjnzgntrn/rust-linux:${{ env.RUST_CI_VERSION }} /bin/sh -c "CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_NET_RETRY=10 RUSTFLAGS='-C target-feature=+crt-static' cargo build --release --target aarch64-unknown-linux-musl --manifest-path /src/app/entrusted_webclient/Cargo.toml && strip /src/app/entrusted_webclient/target/aarch64-unknown-linux-musl/release/entrusted-webclient && cp /src/app/entrusted_webclient/target/aarch64-unknown-linux-musl/release/entrusted-webclient /src/artifacts/entrusted-${APPVERSION}-linux-aarch64-glibc/ && rm -rf /src/app/entrusted_webclient/target && CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_NET_RETRY=10 RUSTFLAGS='-C target-feature=+crt-static' cargo build --release --target aarch64-unknown-linux-musl --manifest-path /src/app/entrusted_webserver/Cargo.toml && strip /src/app/entrusted_webserver/target/aarch64-unknown-linux-musl/release/entrusted-webserver && cp /src/app/entrusted_webserver/target/aarch64-unknown-linux-musl/release/entrusted-webserver /src/artifacts/entrusted-${APPVERSION}-linux-aarch64-glibc/ && rm -rf /src/app/entrusted_webserver/target && CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_NET_RETRY=10 RUSTFLAGS='-C target-feature=+crt-static' cargo build --release --target aarch64-unknown-linux-musl --manifest-path /src/app/entrusted_client/Cargo.toml && strip /src/app/entrusted_client/target/aarch64-unknown-linux-musl/release/entrusted-cli && cp /src/app/entrusted_client/target/aarch64-unknown-linux-musl/release/entrusted-cli /src/artifacts/entrusted-${APPVERSION}-linux-aarch64-glibc/ && rm -rf /src/app/entrusted_client/target && CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_NET_RETRY=10 cargo build --release --manifest-path /src/app/entrusted_client/Cargo.toml --target aarch64-unknown-linux-gnu --features=gui,fltk/fltk-bundled,fltk/use-wayland --bin entrusted-gui && strip /src/app/entrusted_client/target/aarch64-unknown-linux-gnu/release/entrusted-gui && cp /src/app/entrusted_client/target/aarch64-unknown-linux-gnu/release/entrusted-gui /src/artifacts/entrusted-${APPVERSION}-linux-aarch64-glibc/ && rm -rf /src/app/entrusted_client/target && cd /src/artifacts && tar cvf entrusted-${APPVERSION}-linux-aarch64-glibc.tar entrusted-${APPVERSION}-linux-aarch64-glibc && /src/ci_cd/linux/redhat.sh ${APPVERSION} /src/artifacts/entrusted-${APPVERSION}-linux-aarch64-glibc.rpm /src/app/images /src/artifacts/entrusted-${APPVERSION}-linux-aarch64-glibc aarch64 && /src/ci_cd/linux/debian.sh ${APPVERSION} /src/artifacts/entrusted-${APPVERSION}-linux-aarch64-glibc.deb /src/app/images /src/artifacts/entrusted-${APPVERSION}-linux-aarch64-glibc arm64 && cp /src/artifacts/*.rpm /src/artifacts/*.deb /src/artifacts/*.tar /src/artifacts/all;"
sudo rm -rf ${{ github.workspace }}/app/entrusted_client/target
podman run --platform linux/arm64 -v $(pwd):/src docker.io/uycyjnzgntrn/alpine:${{ env.ALPINE_VERSION }} /bin/sh -c "CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_NET_RETRY=10 CFLTK_BUNDLE_URL='https://github.com/yveszoundi/cfltk-alpine-musl-bundle/releases/download/${{ env.CFLTK_VERSION}}/lib_aarch64-alpine-linux-musl.tar.gz' cargo build --release --manifest-path /src/app/entrusted_client/Cargo.toml --features=gui,fltk/fltk-bundled,fltk/use-wayland --bin entrusted-gui"
cp app/entrusted_client/target/release/entrusted-gui artifacts/entrusted-${APPVERSION}-linux-aarch64-musl/
cp artifacts/entrusted-${APPVERSION}-linux-aarch64-glibc/entrusted-cli artifacts/entrusted-${APPVERSION}-linux-aarch64-musl/
cp artifacts/entrusted-${APPVERSION}-linux-aarch64-glibc/entrusted-webserver artifacts/entrusted-${APPVERSION}-linux-aarch64-musl/
cp artifacts/entrusted-${APPVERSION}-linux-aarch64-glibc/entrusted-webclient artifacts/entrusted-${APPVERSION}-linux-aarch64-musl/
sudo rm -rf app/entrusted_client/target
podman run --platform linux/arm64 -v $(pwd):/src docker.io/uycyjnzgntrn/rust-linux:${{ env.RUST_CI_VERSION }} /bin/sh -c "cd /src/artifacts && tar cvf entrusted-${APPVERSION}-linux-aarch64-musl.tar entrusted-${APPVERSION}-linux-aarch64-musl && cp /src/artifacts/*.tar /src/artifacts/all;"
- name: Upload a Build Artifact
uses: actions/upload-artifact@v4
with:
name: entrusted-linux-aarch64-all
path: ${{ github.workspace }}/artifacts/all