Build main binaries #67
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |