diff --git a/.onedev-buildspec.yml b/.onedev-buildspec.yml new file mode 100644 index 0000000..9b66d90 --- /dev/null +++ b/.onedev-buildspec.yml @@ -0,0 +1,44 @@ +version: 39 +jobs: +- name: Build + steps: + - !CheckoutStep + name: Checkout + cloneCredential: !DefaultCredential {} + withLfs: true + withSubmodules: true + cloneDepth: 1 + condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL + - !CommandStep + name: Build and Publish Deb Package + runInContainer: true + image: onedev.site.tesses.net/dependencies/debbuilder/jammy:latest + interpreter: !DefaultInterpreter + commands: | + apt update -y + apt install -y pkg-config + cd Packaging/Linux + bash build-ubuntu-jammy.sh + bash push-ubuntu-jammy.sh + envVars: + - name: GITEA_AUTH + value: '@secret:GITEA_AUTH@' + useTTY: true + condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL + - !CommandStep + name: Build and Publish Deb Package (Plucky) + runInContainer: true + image: onedev.site.tesses.net/dependencies/debbuilder/plucky:latest + interpreter: !DefaultInterpreter + commands: "apt update -y\napt install -y pkg-config \ncd Packaging/Linux\nbash build-ubuntu-plucky.sh\nbash push-ubuntu-plucky.sh\n" + envVars: + - name: GITEA_AUTH + value: '@secret:GITEA_AUTH@' + useTTY: true + condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL + triggers: + - !BranchUpdateTrigger {} + retryCondition: never + maxRetries: 3 + retryDelay: 30 + timeout: 14400 diff --git a/Packaging/Linux/build-ubuntu-jammy.sh b/Packaging/Linux/build-ubuntu-jammy.sh new file mode 100644 index 0000000..5a4bdff --- /dev/null +++ b/Packaging/Linux/build-ubuntu-jammy.sh @@ -0,0 +1,55 @@ +#!/bin/bash +source ./version.sh +mkdir -p build/jammy +cd build/jammy +mkdir build-amd64 +apt install -y tessesframework +cmake -S ../../../../ -B build-amd64 -DCMAKE_INSTALL_PREFIX=/usr -DTESSESFRAMEWORK_VENDERCERTCHAIN=OFF +cd build-amd64 +make -j`nproc` +make install DESTDIR=../tessesframework-webview_$DEB_VERSION\_amd64 +mkdir -p ../tessesframework_$DEB_VERSION\_amd64/DEBIAN +apt remove -y tessesframework +bash ../../../make-control.sh ../tessesframework-webview_$DEB_VERSION\_amd64/DEBIAN/control amd64 +cd ../ +dpkg-deb --build tessesframework-webview_$DEB_VERSION\_amd64 + + +# ARM64 +mkdir build-arm64 +apt install -y tessesframework:arm64 +cmake -S ../../../../ -B build-arm64 -DCMAKE_INSTALL_PREFIX=/usr -DTESSESFRAMEWORK_VENDERCERTCHAIN=OFF -DCMAKE_TOOLCHAIN_FILE=/opt/toolchains/arm64.cmake +cd build-arm64 +make -j`nproc` +make install DESTDIR=../tessesframework-webview$DEB_VERSION\_arm64 +apt remove -y tessesframework:arm64 +mkdir -p ../tessesframework-webview_$DEB_VERSION\_arm64/DEBIAN +bash ../../../make-control.sh ../tessesframework-webview_$DEB_VERSION\_arm64/DEBIAN/control arm64 +cd ../ +dpkg-deb --build tessesframework-webview_$DEB_VERSION\_arm64 + +# RISCV64 +mkdir build-riscv64 +apt install -y tessesframework:riscv64 +cmake -S ../../../../ -B build-riscv64 -DCMAKE_INSTALL_PREFIX=/usr -DTESSESFRAMEWORK_VENDERCERTCHAIN=OFF -DCMAKE_TOOLCHAIN_FILE=/opt/toolchains/riscv64.cmake +cd build-riscv64 +make -j`nproc` +make install DESTDIR=../tessesframework-webview_$DEB_VERSION\_riscv64 +apt remove -y tessesframework:riscv64 +mkdir -p ../tessesframework-webview_$DEB_VERSION\_riscv64/DEBIAN +bash ../../../make-control.sh ../tessesframework-webview_$DEB_VERSION\_riscv64/DEBIAN/control riscv64 +cd ../ +dpkg-deb --build tessesframework-webview_$DEB_VERSION\_riscv64 + +# ARMHF +mkdir build-armhf +apt install -y tessesframework:armhf +cmake -S ../../../../ -B build-armhf -DCMAKE_INSTALL_PREFIX=/usr -DTESSESFRAMEWORK_VENDERCERTCHAIN=OFF -DCMAKE_TOOLCHAIN_FILE=/opt/toolchains/armhf.cmake +cd build-armhf +make -j`nproc` +make install DESTDIR=../tessesframework-webview_$DEB_VERSION\_armhf +apt remove -y tessesframework:armhf +mkdir -p ../tessesframework-webview_$DEB_VERSION\_armhf/DEBIAN +bash ../../../make-control.sh ../tessesframework-webview_$DEB_VERSION\_armhf/DEBIAN/control armhf +cd ../ +dpkg-deb --build tessesframework-webview_$DEB_VERSION\_armhf \ No newline at end of file diff --git a/Packaging/Linux/build-ubuntu-plucky.sh b/Packaging/Linux/build-ubuntu-plucky.sh new file mode 100644 index 0000000..74454d5 --- /dev/null +++ b/Packaging/Linux/build-ubuntu-plucky.sh @@ -0,0 +1,67 @@ +#!/bin/bash +source ./version.sh +mkdir -p build/plucky +cd build/plucky +mkdir build-amd64 +apt install -y tessesframework +cmake -S ../../../../ -B build-amd64 -DCMAKE_INSTALL_PREFIX=/usr -DTESSESFRAMEWORK_VENDERCERTCHAIN=OFF +cd build-amd64 +make -j`nproc` +make install DESTDIR=../tessesframework-webview_$DEB_VERSION\_amd64 +apt remove -y tessesframework +mkdir -p ../tessesframework-webview_$DEB_VERSION\_amd64/DEBIAN +bash ../../../make-control.sh ../tessesframework-webview_$DEB_VERSION\_amd64/DEBIAN/control amd64 +cd ../ +dpkg-deb --build tessesframework-webview_$DEB_VERSION\_amd64 + +# ARM64 +mkdir build-arm64 +apt install -y tessesframework:arm64 +cmake -S ../../../../ -B build-arm64 -DCMAKE_INSTALL_PREFIX=/usr -DTESSESFRAMEWORK_VENDERCERTCHAIN=OFF -DCMAKE_TOOLCHAIN_FILE=/opt/toolchains/arm64.cmake +cd build-arm64 +make -j`nproc` +make install DESTDIR=../tessesframework-webview_$DEB_VERSION\_arm64 +apt remove -y tessesframework:arm64 +mkdir -p ../tessesframework-webview_$DEB_VERSION\_arm64/DEBIAN +bash ../../../make-control.sh ../tessesframework-webview_$DEB_VERSION\_arm64/DEBIAN/control arm64 +cd ../ +dpkg-deb --build tessesframework-webview_$DEB_VERSION\_arm64 + +# RISCV64 +mkdir build-riscv64 +apt install -y tessesframework:riscv64 +cmake -S ../../../../ -B build-riscv64 -DCMAKE_INSTALL_PREFIX=/usr -DTESSESFRAMEWORK_VENDERCERTCHAIN=OFF -DCMAKE_TOOLCHAIN_FILE=/opt/toolchains/riscv64.cmake +cd build-riscv64 +make -j`nproc` +make install DESTDIR=../tessesframework-webview_$DEB_VERSION\_riscv64 +apt remove -y tessesframework:riscv64 +mkdir -p ../tessesframework-webview_$DEB_VERSION\_riscv64/DEBIAN +bash ../../../make-control.sh ../tessesframework-webview_$DEB_VERSION\_riscv64/DEBIAN/control riscv64 +cd ../ +dpkg-deb --build tessesframework-webview_$DEB_VERSION\_riscv64 + +# ARMHF +mkdir build-armhf +apt install -y tessesframework:armhf +cmake -S ../../../../ -B build-armhf -DCMAKE_INSTALL_PREFIX=/usr -DTESSESFRAMEWORK_VENDERCERTCHAIN=OFF -DCMAKE_TOOLCHAIN_FILE=/opt/toolchains/armhf.cmake +cd build-armhf +make -j`nproc` +make install DESTDIR=../tessesframework-webview_$DEB_VERSION\_armhf +apt remove -y tessesframework:armhf +mkdir -p ../tessesframework-webview_$DEB_VERSION\_armhf/DEBIAN +bash ../../../make-control.sh ../tessesframework-webview_$DEB_VERSION\_armhf/DEBIAN/control armhf +cd ../ +dpkg-deb --build tessesframework-webview_$DEB_VERSION\_armhf + +# I386 +mkdir build-i386 +apt install -y tessesframework:i386 +cmake -S ../../../../ -B build-i386 -DCMAKE_INSTALL_PREFIX=/usr -DTESSESFRAMEWORK_VENDERCERTCHAIN=OFF -DCMAKE_TOOLCHAIN_FILE=/opt/toolchains/i386.cmake +cd build-i386 +make -j`nproc` +make install DESTDIR=../tessesframework-webview_$DEB_VERSION\_i386 +apt remove -y tessesframework:i386 +mkdir -p ../tessesframework-webview_$DEB_VERSION\_i386/DEBIAN +bash ../../../make-control.sh ../tessesframework-webview_$DEB_VERSION\_i386/DEBIAN/control i386 +cd ../ +dpkg-deb --build tessesframework-webview_$DEB_VERSION\_i386 \ No newline at end of file diff --git a/Packaging/Linux/make-control.sh b/Packaging/Linux/make-control.sh new file mode 100644 index 0000000..49e0d95 --- /dev/null +++ b/Packaging/Linux/make-control.sh @@ -0,0 +1,8 @@ +echo "Package: tessesframework-webview" > "$1" +echo "Version: $DEB_VERSION" >> "$1" +echo "Architecture: $2" >> "$1" +echo "Essential: no" >> "$1" +echo "Priority: optional" >> "$1" +echo "Depends: tessesframework libgtk-4-1 libwebkitgtk-6.0-4" >> "$1" +echo "Maintainer: Mike Nolan" >> "$1" +echo "Description: WebView For TessesFramework" >> "$1" \ No newline at end of file diff --git a/Packaging/Linux/push-ubuntu-jammy.sh b/Packaging/Linux/push-ubuntu-jammy.sh new file mode 100644 index 0000000..3376d32 --- /dev/null +++ b/Packaging/Linux/push-ubuntu-jammy.sh @@ -0,0 +1,22 @@ +#!/bin/bash +source ./version.sh +curl --user tesses50:$GITEA_AUTH -X DELETE \ + https://git.tesseslanguage.com/api/packages/tesses50/debian/pool/jammy/main/tessesframework-webview/$DEB_VERSION/amd64 +curl --user tesses50:$GITEA_AUTH -X DELETE \ + https://git.tesseslanguage.com/api/packages/tesses50/debian/pool/jammy/main/tessesframework-webview/$DEB_VERSION/arm64 +curl --user tesses50:$GITEA_AUTH -X DELETE \ + https://git.tesseslanguage.com/api/packages/tesses50/debian/pool/jammy/main/tessesframework-webview/$DEB_VERSION/riscv64 +curl --user tesses50:$GITEA_AUTH -X DELETE \ + https://git.tesseslanguage.com/api/packages/tesses50/debian/pool/jammy/main/tessesframework-webview/$DEB_VERSION/armhf +curl --user tesses50:$GITEA_AUTH \ + --upload-file build/jammy/tessesframework-webview_$DEB_VERSION\_amd64.deb \ + https://git.tesseslanguage.com/api/packages/tesses50/debian/pool/jammy/main/upload +curl --user tesses50:$GITEA_AUTH \ + --upload-file build/jammy/tessesframework-webview_$DEB_VERSION\_arm64.deb \ + https://git.tesseslanguage.com/api/packages/tesses50/debian/pool/jammy/main/upload +curl --user tesses50:$GITEA_AUTH \ + --upload-file build/jammy/tessesframework-webview_$DEB_VERSION\_riscv64.deb \ + https://git.tesseslanguage.com/api/packages/tesses50/debian/pool/jammy/main/upload +curl --user tesses50:$GITEA_AUTH \ + --upload-file build/jammy/tessesframework-webview_$DEB_VERSION\_armhf.deb \ + https://git.tesseslanguage.com/api/packages/tesses50/debian/pool/jammy/main/upload \ No newline at end of file diff --git a/Packaging/Linux/push-ubuntu-plucky.sh b/Packaging/Linux/push-ubuntu-plucky.sh new file mode 100644 index 0000000..61a61fa --- /dev/null +++ b/Packaging/Linux/push-ubuntu-plucky.sh @@ -0,0 +1,27 @@ +#!/bin/bash +source ./version.sh +curl --user tesses50:$GITEA_AUTH -X DELETE \ + https://git.tesseslanguage.com/api/packages/tesses50/debian/pool/plucky/main/tessesframework-webview/$DEB_VERSION/amd64 +curl --user tesses50:$GITEA_AUTH -X DELETE \ + https://git.tesseslanguage.com/api/packages/tesses50/debian/pool/plucky/main/tessesframework-webview/$DEB_VERSION/arm64 +curl --user tesses50:$GITEA_AUTH -X DELETE \ + https://git.tesseslanguage.com/api/packages/tesses50/debian/pool/plucky/main/tessesframework-webview/$DEB_VERSION/i386 +curl --user tesses50:$GITEA_AUTH -X DELETE \ + https://git.tesseslanguage.com/api/packages/tesses50/debian/pool/plucky/main/tessesframework-webview/$DEB_VERSION/riscv64 +curl --user tesses50:$GITEA_AUTH -X DELETE \ + https://git.tesseslanguage.com/api/packages/tesses50/debian/pool/plucky/main/tessesframework-webview/$DEB_VERSION/armhf +curl --user tesses50:$GITEA_AUTH \ + --upload-file build/plucky/tessesframework-webview_$DEB_VERSION\_amd64.deb \ + https://git.tesseslanguage.com/api/packages/tesses50/debian/pool/plucky/main/upload +curl --user tesses50:$GITEA_AUTH \ + --upload-file build/plucky/tessesframework-webview_$DEB_VERSION\_arm64.deb \ + https://git.tesseslanguage.com/api/packages/tesses50/debian/pool/plucky/main/upload +curl --user tesses50:$GITEA_AUTH \ + --upload-file build/plucky/tessesframework-webview_$DEB_VERSION\_i386.deb \ + https://git.tesseslanguage.com/api/packages/tesses50/debian/pool/plucky/main/upload +curl --user tesses50:$GITEA_AUTH \ + --upload-file build/plucky/tessesframework-webview_$DEB_VERSION\_riscv64.deb \ + https://git.tesseslanguage.com/api/packages/tesses50/debian/pool/plucky/main/upload +curl --user tesses50:$GITEA_AUTH \ + --upload-file build/plucky/tessesframework-webview_$DEB_VERSION\_armhf.deb \ + https://git.tesseslanguage.com/api/packages/tesses50/debian/pool/plucky/main/upload \ No newline at end of file diff --git a/Packaging/Linux/version.sh b/Packaging/Linux/version.sh new file mode 100644 index 0000000..293fb1c --- /dev/null +++ b/Packaging/Linux/version.sh @@ -0,0 +1 @@ +export DEB_VERSION=1.0.0 \ No newline at end of file