diff --git a/.github/workflows/ecode-nightly.yml b/.github/workflows/ecode-nightly.yml index ae794c9c9..693a36cdb 100644 --- a/.github/workflows/ecode-nightly.yml +++ b/.github/workflows/ecode-nightly.yml @@ -53,7 +53,6 @@ jobs: runs-on: ${{ matrix.config.container }} container: image: ubuntu:20.04 - options: --device /dev/fuse --cap-add SYS_ADMIN env: CC: gcc CXX: g++ @@ -353,3 +352,44 @@ jobs: prerelease: true files: | projects/macos/ecode/ecode-macos-${{ env.INSTALL_REF }}-x86_64.dmg + + build_freebsd_x86_64: + name: FreeBSD x86_64 Nightly + needs: release + runs-on: ubuntu-latest + steps: + - name: Checkout Code + uses: actions/checkout@v4 + with: { fetch-depth: 0, submodules: 'recursive' } + - uses: vmactions/freebsd-vm@v1 + env: + INSTALL_REF: ${{ needs.release.outputs.version }} + with: + release: '14.1' + envs: 'INSTALL_REF' + sync: sshfs + usesh: true + mem: 8192 + prepare: | + pkg install -y bash git sdl2 curl premake5 gsed gmake + run: | + pwd + ls -lah + whoami + env + freebsd-version + sysctl hw.model + sysctl hw.ncpu + sysctl hw.physmem + sysctl hw.usermem + bash projects/scripts/patch_commit_number.sh + sh projects/freebsd/ecode/build.app.sh --version ${{ env.INSTALL_REF }} + - name: Upload Files + uses: softprops/action-gh-release@v2 + with: + tag_name: ${{ needs.release.outputs.version }} + draft: false + prerelease: true + files: | + projects/freebsd/ecode/ecode-freebsd-${{ env.INSTALL_REF }}-x86_64.AppImage + projects/freebsd/ecode/ecode-freebsd-${{ env.INSTALL_REF }}-x86_64.tar.gz diff --git a/projects/freebsd/ecode/build.app.sh b/projects/freebsd/ecode/build.app.sh index ccc5bf75e..7a25d199a 100755 --- a/projects/freebsd/ecode/build.app.sh +++ b/projects/freebsd/ecode/build.app.sh @@ -3,6 +3,34 @@ CANONPATH=$(readlink -f "$0") DIRPATH="$(dirname "$CANONPATH")" cd "$DIRPATH" || exit cd ../../../ || exit +VERSION= + +while [ $# -gt 0 ]; do + case "$1" in + --version) + if [ -n "$2" ]; then + VERSION="$2" + shift + else + echo "Error: --version requires an argument." >&2 + exit 1 + fi + ;; + --) + shift + break + ;; + -*) + echo "Unknown option: $1" >&2 + exit 1 + ;; + *) + break + ;; + esac + shift +done + premake5 --with-text-shaper gmake2 || exit cd make/bsd || exit gmake -j"$(nproc)" config=release_x86_64 ecode || exit @@ -45,15 +73,23 @@ mkdir ecode.app/assets/ui cp ../../../bin/assets/ui/breeze.css ecode.app/assets/ui/ cp ../../../bin/assets/ca-bundle.pem ecode.app/assets/ca-bundle.pem +if [ -n "$VERSION" ]; +then +ECODE_VERSION="$VERSION" +else VERSIONPATH=../../../src/tools/ecode/version.hpp ECODE_MAJOR_VERSION=$(grep "define ECODE_MAJOR_VERSION" $VERSIONPATH | awk '{print $3}') ECODE_MINOR_VERSION=$(grep "define ECODE_MINOR_VERSION" $VERSIONPATH | awk '{print $3}') ECODE_PATCH_LEVEL=$(grep "define ECODE_PATCH_LEVEL" $VERSIONPATH | awk '{print $3}') -ECODE_NAME=ecode-freebsd-"$ECODE_MAJOR_VERSION"."$ECODE_MINOR_VERSION"."$ECODE_PATCH_LEVEL"-x86_64 +ECODE_VERSION="$ECODE_MAJOR_VERSION"."$ECODE_MINOR_VERSION"."$ECODE_PATCH_LEVEL" +fi + +ECODE_NAME=ecode-freebsd-"$ECODE_VERSION"-x86_64 mv ecode.app/AppRun ecode.app/ecode mv ecode.app ecode +echo "Generating $ECODE_NAME.tar.gz" tar -czf "$ECODE_NAME".tar.gz ecode mv ecode ecode.app