forked from shaytan/rdgen
Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
785d03e46f | ||
|
|
996b3c66b0 | ||
|
|
08af79b930 | ||
|
|
f6be77c68a | ||
|
|
a9718c4f5d | ||
|
|
119b272564 | ||
|
|
50236e59ff | ||
|
|
877ec790d6 | ||
|
|
972451709c | ||
|
|
e2c20567d6 | ||
|
|
6718464f57 | ||
|
|
5148b792e6 | ||
|
|
e79572d55d | ||
|
|
9c1ab4de3c | ||
|
|
d2b36d3876 | ||
|
|
16d0818a28 | ||
|
|
634a77a054 | ||
|
|
3ff33a6efb | ||
|
|
897fe1a487 |
6
.github/workflows/bridge.yml
vendored
6
.github/workflows/bridge.yml
vendored
@@ -26,7 +26,7 @@ jobs:
|
|||||||
job:
|
job:
|
||||||
- {
|
- {
|
||||||
target: x86_64-unknown-linux-gnu,
|
target: x86_64-unknown-linux-gnu,
|
||||||
os: ubuntu-20.04,
|
os: ubuntu-24.04,
|
||||||
extra-build-args: "",
|
extra-build-args: "",
|
||||||
}
|
}
|
||||||
steps:
|
steps:
|
||||||
@@ -56,9 +56,9 @@ jobs:
|
|||||||
gcc \
|
gcc \
|
||||||
git \
|
git \
|
||||||
g++ \
|
g++ \
|
||||||
libclang-10-dev \
|
libclang-dev \
|
||||||
libgtk-3-dev \
|
libgtk-3-dev \
|
||||||
llvm-10-dev \
|
llvm-dev \
|
||||||
nasm \
|
nasm \
|
||||||
ninja-build \
|
ninja-build \
|
||||||
pkg-config \
|
pkg-config \
|
||||||
|
|||||||
12
.github/workflows/generator-android.yml
vendored
12
.github/workflows/generator-android.yml
vendored
@@ -69,7 +69,7 @@ env:
|
|||||||
TAG_NAME: "${{ inputs.upload-tag }}"
|
TAG_NAME: "${{ inputs.upload-tag }}"
|
||||||
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
|
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
|
||||||
# vcpkg version: 2024.07.12
|
# vcpkg version: 2024.07.12
|
||||||
VCPKG_COMMIT_ID: "6f29f12e82a8293156836ad81cc9bf5af41fe836"
|
VCPKG_COMMIT_ID: "460551b0ec06be1ba6b918448bf3b0f44add813d"
|
||||||
VERSION: "${{ fromJson(inputs.extras).version }}"
|
VERSION: "${{ fromJson(inputs.extras).version }}"
|
||||||
NDK_VERSION: "r27c"
|
NDK_VERSION: "r27c"
|
||||||
#signing keys env variable checks
|
#signing keys env variable checks
|
||||||
@@ -96,21 +96,21 @@ jobs:
|
|||||||
- {
|
- {
|
||||||
arch: aarch64,
|
arch: aarch64,
|
||||||
target: aarch64-linux-android,
|
target: aarch64-linux-android,
|
||||||
os: ubuntu-20.04,
|
os: ubuntu-24.04,
|
||||||
reltype: release,
|
reltype: release,
|
||||||
suffix: "",
|
suffix: "",
|
||||||
}
|
}
|
||||||
- {
|
- {
|
||||||
arch: armv7,
|
arch: armv7,
|
||||||
target: armv7-linux-androideabi,
|
target: armv7-linux-androideabi,
|
||||||
os: ubuntu-20.04,
|
os: ubuntu-24.04,
|
||||||
reltype: release,
|
reltype: release,
|
||||||
suffix: "",
|
suffix: "",
|
||||||
}
|
}
|
||||||
- {
|
- {
|
||||||
arch: x86_64,
|
arch: x86_64,
|
||||||
target: x86_64-linux-android,
|
target: x86_64-linux-android,
|
||||||
os: ubuntu-20.04,
|
os: ubuntu-24.04,
|
||||||
reltype: release,
|
reltype: release,
|
||||||
suffix: "",
|
suffix: "",
|
||||||
}
|
}
|
||||||
@@ -166,7 +166,7 @@ jobs:
|
|||||||
libayatana-appindicator3-dev \
|
libayatana-appindicator3-dev \
|
||||||
libasound2-dev \
|
libasound2-dev \
|
||||||
libc6-dev \
|
libc6-dev \
|
||||||
libclang-10-dev \
|
libclang-dev \
|
||||||
libgstreamer1.0-dev \
|
libgstreamer1.0-dev \
|
||||||
libgstreamer-plugins-base1.0-dev \
|
libgstreamer-plugins-base1.0-dev \
|
||||||
libgtk-3-dev \
|
libgtk-3-dev \
|
||||||
@@ -179,7 +179,7 @@ jobs:
|
|||||||
libxcb-xfixes0-dev \
|
libxcb-xfixes0-dev \
|
||||||
libxdo-dev \
|
libxdo-dev \
|
||||||
libxfixes-dev \
|
libxfixes-dev \
|
||||||
llvm-10-dev \
|
llvm-dev \
|
||||||
nasm \
|
nasm \
|
||||||
ninja-build \
|
ninja-build \
|
||||||
openjdk-17-jdk-headless \
|
openjdk-17-jdk-headless \
|
||||||
|
|||||||
73
.github/workflows/generator-linux.yml
vendored
73
.github/workflows/generator-linux.yml
vendored
@@ -69,7 +69,7 @@ env:
|
|||||||
TAG_NAME: "${{ inputs.upload-tag }}"
|
TAG_NAME: "${{ inputs.upload-tag }}"
|
||||||
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
|
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
|
||||||
# vcpkg version: 2024.07.12
|
# vcpkg version: 2024.07.12
|
||||||
VCPKG_COMMIT_ID: "6f29f12e82a8293156836ad81cc9bf5af41fe836"
|
VCPKG_COMMIT_ID: "460551b0ec06be1ba6b918448bf3b0f44add813d"
|
||||||
VERSION: "${{ fromJson(inputs.extras).version }}"
|
VERSION: "${{ fromJson(inputs.extras).version }}"
|
||||||
NDK_VERSION: "r27c"
|
NDK_VERSION: "r27c"
|
||||||
#signing keys env variable checks
|
#signing keys env variable checks
|
||||||
@@ -102,14 +102,14 @@ jobs:
|
|||||||
deb_arch: amd64,
|
deb_arch: amd64,
|
||||||
vcpkg-triplet: x64-linux,
|
vcpkg-triplet: x64-linux,
|
||||||
}
|
}
|
||||||
# - {
|
- {
|
||||||
# arch: aarch64,
|
arch: aarch64,
|
||||||
# target: aarch64-unknown-linux-gnu,
|
target: aarch64-unknown-linux-gnu,
|
||||||
# distro: ubuntu18.04,
|
distro: ubuntu18.04,
|
||||||
# on: [self-hosted, Linux, ARM64],
|
on: ubuntu-22.04-arm,
|
||||||
# deb_arch: arm64,
|
deb_arch: arm64,
|
||||||
# vcpkg-triplet: arm64-linux,
|
vcpkg-triplet: arm64-linux,
|
||||||
# }
|
}
|
||||||
steps:
|
steps:
|
||||||
- name: Export GitHub Actions cache environment variables
|
- name: Export GitHub Actions cache environment variables
|
||||||
uses: actions/github-script@v6
|
uses: actions/github-script@v6
|
||||||
@@ -137,13 +137,15 @@ jobs:
|
|||||||
data: '{"uuid": "${{ inputs.uuid }}", "status": "5% complete"}'
|
data: '{"uuid": "${{ inputs.uuid }}", "status": "5% complete"}'
|
||||||
|
|
||||||
- name: Maximize build space
|
- name: Maximize build space
|
||||||
if: ${{ matrix.job.arch == 'x86_64' }}
|
|
||||||
run: |
|
run: |
|
||||||
sudo rm -rf /opt/ghc
|
sudo rm -rf /opt/ghc
|
||||||
sudo rm -rf /usr/local/lib/android
|
sudo rm -rf /usr/local/lib/android
|
||||||
sudo rm -rf /usr/share/dotnet
|
sudo rm -rf /usr/share/dotnet
|
||||||
sudo apt-get update -y
|
sudo apt-get update -y
|
||||||
sudo apt-get install -y nasm qemu-user-static
|
sudo apt-get install -y nasm
|
||||||
|
if [[ "${{ matrix.job.arch }}" == "x86_64" ]]; then
|
||||||
|
sudo apt-get install -y qemu-user-static
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
@@ -401,7 +403,7 @@ jobs:
|
|||||||
imagemagick \
|
imagemagick \
|
||||||
libayatana-appindicator3-dev \
|
libayatana-appindicator3-dev \
|
||||||
libasound2-dev \
|
libasound2-dev \
|
||||||
libclang-10-dev \
|
libclang-dev \
|
||||||
libgstreamer1.0-dev \
|
libgstreamer1.0-dev \
|
||||||
libgstreamer-plugins-base1.0-dev \
|
libgstreamer-plugins-base1.0-dev \
|
||||||
libgtk-3-dev \
|
libgtk-3-dev \
|
||||||
@@ -414,7 +416,7 @@ jobs:
|
|||||||
libxcb-xfixes0-dev \
|
libxcb-xfixes0-dev \
|
||||||
libxdo-dev \
|
libxdo-dev \
|
||||||
libxfixes-dev \
|
libxfixes-dev \
|
||||||
llvm-10-dev \
|
llvm-dev \
|
||||||
nasm \
|
nasm \
|
||||||
ninja-build \
|
ninja-build \
|
||||||
pkg-config \
|
pkg-config \
|
||||||
@@ -514,8 +516,8 @@ jobs:
|
|||||||
chmod 777 output -R
|
chmod 777 output -R
|
||||||
export CARGO_INCREMENTAL=0
|
export CARGO_INCREMENTAL=0
|
||||||
export DEB_ARCH=${{ matrix.job.deb_arch }}
|
export DEB_ARCH=${{ matrix.job.deb_arch }}
|
||||||
mkdir -p flutter/tmpdeb/usr/lib/rustdesk
|
mkdir -p flutter/tmpdeb/usr/share/rustdesk
|
||||||
cp ./custom.txt ./flutter/tmpdeb/usr/lib/rustdesk/custom.txt
|
cp ./custom.txt ./flutter/tmpdeb/usr/share/rustdesk/custom.txt
|
||||||
if [[ "${{ inputs.logolink }}" != "false" ]]; then
|
if [[ "${{ inputs.logolink }}" != "false" ]]; then
|
||||||
wget -O ./flutter/assets/logo.png ${{ fromJson(inputs.logolink).url }}/get_png?filename=${{ fromJson(inputs.logolink).file }}"&"uuid=${{ fromJson(inputs.logolink).uuid }}
|
wget -O ./flutter/assets/logo.png ${{ fromJson(inputs.logolink).url }}/get_png?filename=${{ fromJson(inputs.logolink).file }}"&"uuid=${{ fromJson(inputs.logolink).uuid }}
|
||||||
fi
|
fi
|
||||||
@@ -525,13 +527,16 @@ jobs:
|
|||||||
convert ./res/128x128.png -resize 200% ./flutter/assets/128x128@2x.png || true
|
convert ./res/128x128.png -resize 200% ./flutter/assets/128x128@2x.png || true
|
||||||
cp ./flutter/assets/icon.svg ./res/scalable.svg
|
cp ./flutter/assets/icon.svg ./res/scalable.svg
|
||||||
pushd ./flutter
|
pushd ./flutter
|
||||||
|
if [[ "${{ matrix.job.arch }}" == "aarch64" ]]; then
|
||||||
|
export PATH="/opt/flutter-elinux/flutter/bin:$PATH"
|
||||||
|
fi
|
||||||
flutter pub get
|
flutter pub get
|
||||||
dart run flutter_launcher_icons
|
dart run flutter_launcher_icons
|
||||||
popd
|
popd
|
||||||
fi
|
fi
|
||||||
python3 ./build.py --flutter --skip-cargo
|
python3 ./build.py --flutter --skip-cargo
|
||||||
for name in rustdesk*??.deb; do
|
for name in rustdesk*??.deb; do
|
||||||
mv "$name" /workspace/output/"${{ inputs.filename }}.deb"
|
mv "$name" /workspace/output/"${{ inputs.filename }}-${{ matrix.job.arch }}.deb"
|
||||||
done
|
done
|
||||||
|
|
||||||
# rpm package
|
# rpm package
|
||||||
@@ -545,7 +550,7 @@ jobs:
|
|||||||
HBB=`pwd` rpmbuild ./res/rpm-flutter.spec -bb
|
HBB=`pwd` rpmbuild ./res/rpm-flutter.spec -bb
|
||||||
pushd ~/rpmbuild/RPMS/${{ matrix.job.arch }}
|
pushd ~/rpmbuild/RPMS/${{ matrix.job.arch }}
|
||||||
for name in rustdesk*??.rpm; do
|
for name in rustdesk*??.rpm; do
|
||||||
mv "$name" /workspace/output/"${{ inputs.filename }}.rpm"
|
mv "$name" /workspace/output/"${{ inputs.filename }}-${{ matrix.job.arch }}.rpm"
|
||||||
done
|
done
|
||||||
|
|
||||||
# rpm suse package
|
# rpm suse package
|
||||||
@@ -559,7 +564,7 @@ jobs:
|
|||||||
HBB=`pwd` rpmbuild ./res/rpm-flutter-suse.spec -bb
|
HBB=`pwd` rpmbuild ./res/rpm-flutter-suse.spec -bb
|
||||||
pushd ~/rpmbuild/RPMS/${{ matrix.job.arch }}
|
pushd ~/rpmbuild/RPMS/${{ matrix.job.arch }}
|
||||||
for name in rustdesk*??.rpm; do
|
for name in rustdesk*??.rpm; do
|
||||||
mv "$name" /workspace/output/"${{ inputs.filename }}-suse.rpm"
|
mv "$name" /workspace/output/"${{ inputs.filename }}-suse-${{ matrix.job.arch }}.rpm"
|
||||||
done
|
done
|
||||||
|
|
||||||
# only x86_64 for arch since we can not find newest arm64 docker image to build
|
# only x86_64 for arch since we can not find newest arm64 docker image to build
|
||||||
@@ -587,25 +592,25 @@ jobs:
|
|||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
if: matrix.job.arch == 'x86_64' && env.UPLOAD_ARTIFACT == 'true' && env.VERSION != 'master'
|
if: matrix.job.arch == 'x86_64' && env.UPLOAD_ARTIFACT == 'true' && env.VERSION != 'master'
|
||||||
run: |
|
run: |
|
||||||
cp ./res/rustdesk-${{ env.VERSION }}-0-x86_64.pkg.tar.zst ./output/${{ inputs.filename }}.pkg.tar.zst
|
cp ./res/rustdesk-${{ env.VERSION }}-0-x86_64.pkg.tar.zst ./output/${{ inputs.filename }}-${{ matrix.job.arch }}.pkg.tar.zst
|
||||||
|
|
||||||
- name: send file to rdgen server
|
- name: send file to rdgen server
|
||||||
if: ${{ fromJson(inputs.extras).rdgen == 'true' }}
|
if: ${{ fromJson(inputs.extras).rdgen == 'true' }}
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ fromJson(inputs.extras).token }}" -F "file=@./output/${{ inputs.filename }}.deb" -F "uuid=${{ inputs.uuid }}" ${{ secrets.GENURL }}/save_custom_client
|
curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ fromJson(inputs.extras).token }}" -F "file=@./output/${{ inputs.filename }}-${{ matrix.job.arch }}.deb" -F "uuid=${{ inputs.uuid }}" ${{ secrets.GENURL }}/save_custom_client
|
||||||
curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ fromJson(inputs.extras).token }}" -F "file=@./output/${{ inputs.filename }}.rpm" -F "uuid=${{ inputs.uuid }}" ${{ secrets.GENURL }}/save_custom_client
|
curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ fromJson(inputs.extras).token }}" -F "file=@./output/${{ inputs.filename }}-${{ matrix.job.arch }}.rpm" -F "uuid=${{ inputs.uuid }}" ${{ secrets.GENURL }}/save_custom_client
|
||||||
curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ fromJson(inputs.extras).token }}" -F "file=@./output/${{ inputs.filename }}-suse.rpm" -F "uuid=${{ inputs.uuid }}" ${{ secrets.GENURL }}/save_custom_client
|
curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ fromJson(inputs.extras).token }}" -F "file=@./output/${{ inputs.filename }}-suse-${{ matrix.job.arch }}.rpm" -F "uuid=${{ inputs.uuid }}" ${{ secrets.GENURL }}/save_custom_client
|
||||||
curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ fromJson(inputs.extras).token }}" -F "file=@./output/${{ inputs.filename }}.pkg.tar.zst" -F "uuid=${{ inputs.uuid }}" ${{ secrets.GENURL }}/save_custom_client || true
|
curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ fromJson(inputs.extras).token }}" -F "file=@./output/${{ inputs.filename }}-${{ matrix.job.arch }}.pkg.tar.zst" -F "uuid=${{ inputs.uuid }}" ${{ secrets.GENURL }}/save_custom_client || true
|
||||||
|
|
||||||
- name: send file to api server
|
- name: send file to api server
|
||||||
if: ${{ fromJson(inputs.extras).rdgen == 'false' }}
|
if: ${{ fromJson(inputs.extras).rdgen == 'false' }}
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ fromJson(inputs.extras).token }}" -F "file=@./output/${{ inputs.filename }}.deb" ${{ inputs.apiServer }}/api/save_custom_client
|
curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ fromJson(inputs.extras).token }}" -F "file=@./output/${{ inputs.filename }}-${{ matrix.job.arch }}.deb" ${{ inputs.apiServer }}/api/save_custom_client
|
||||||
curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ fromJson(inputs.extras).token }}" -F "file=@./output/${{ inputs.filename }}.rpm" ${{ inputs.apiServer }}/api/save_custom_client
|
curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ fromJson(inputs.extras).token }}" -F "file=@./output/${{ inputs.filename }}-${{ matrix.job.arch }}.rpm" ${{ inputs.apiServer }}/api/save_custom_client
|
||||||
curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ fromJson(inputs.extras).token }}" -F "file=@./output/${{ inputs.filename }}-suse.rpm" ${{ inputs.apiServer }}/api/save_custom_client
|
curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ fromJson(inputs.extras).token }}" -F "file=@./output/${{ inputs.filename }}-suse-${{ matrix.job.arch }}.rpm" ${{ inputs.apiServer }}/api/save_custom_client
|
||||||
curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ fromJson(inputs.extras).token }}" -F "file=@./output/${{ inputs.filename }}.pkg.tar.zst" ${{ inputs.apiServer }}/api/save_custom_client || true
|
curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ fromJson(inputs.extras).token }}" -F "file=@./output/${{ inputs.filename }}-${{ matrix.job.arch }}.pkg.tar.zst" ${{ inputs.apiServer }}/api/save_custom_client || true
|
||||||
|
|
||||||
- name: Report Status
|
- name: Report Status
|
||||||
uses: fjogeleit/http-request-action@v1
|
uses: fjogeleit/http-request-action@v1
|
||||||
@@ -613,7 +618,7 @@ jobs:
|
|||||||
url: ${{ env.STATUS_URL }}
|
url: ${{ env.STATUS_URL }}
|
||||||
method: 'POST'
|
method: 'POST'
|
||||||
customHeaders: '{"Content-Type": "application/json"}'
|
customHeaders: '{"Content-Type": "application/json"}'
|
||||||
data: '{"uuid": "${{ inputs.uuid }}", "status": "Success"}'
|
data: '{"uuid": "${{ inputs.uuid }}", "status": "Finished ${{ matrix.job.arch }}"}'
|
||||||
|
|
||||||
- name: failed
|
- name: failed
|
||||||
if: failure()
|
if: failure()
|
||||||
@@ -632,3 +637,15 @@ jobs:
|
|||||||
method: 'POST'
|
method: 'POST'
|
||||||
customHeaders: '{"Content-Type": "application/json"}'
|
customHeaders: '{"Content-Type": "application/json"}'
|
||||||
data: '{"uuid": "${{ inputs.uuid }}", "status": "Generation cancelled, try again"}'
|
data: '{"uuid": "${{ inputs.uuid }}", "status": "Generation cancelled, try again"}'
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
needs: build-rustdesk-linux
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Report Status
|
||||||
|
uses: fjogeleit/http-request-action@v1
|
||||||
|
with:
|
||||||
|
url: ${{ env.STATUS_URL }}
|
||||||
|
method: 'POST'
|
||||||
|
customHeaders: '{"Content-Type": "application/json"}'
|
||||||
|
data: '{"uuid": "${{ inputs.uuid }}", "status": "Success"}'
|
||||||
24
.github/workflows/generator-macos.yml
vendored
24
.github/workflows/generator-macos.yml
vendored
@@ -69,7 +69,7 @@ env:
|
|||||||
TAG_NAME: "${{ inputs.upload-tag }}"
|
TAG_NAME: "${{ inputs.upload-tag }}"
|
||||||
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
|
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
|
||||||
# vcpkg version: 2024.07.12
|
# vcpkg version: 2024.07.12
|
||||||
VCPKG_COMMIT_ID: "b2cb0da531c2f1f740045bfe7c4dac59f0b2b69c"
|
VCPKG_COMMIT_ID: "460551b0ec06be1ba6b918448bf3b0f44add813d"
|
||||||
VERSION: "${{ fromJson(inputs.extras).version }}"
|
VERSION: "${{ fromJson(inputs.extras).version }}"
|
||||||
NDK_VERSION: "r27c"
|
NDK_VERSION: "r27c"
|
||||||
#signing keys env variable checks
|
#signing keys env variable checks
|
||||||
@@ -93,13 +93,13 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
job:
|
job:
|
||||||
# - {
|
- {
|
||||||
# target: x86_64-apple-darwin,
|
target: x86_64-apple-darwin,
|
||||||
# os: macos-13, #macos-latest or macos-14 use M1 now, https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#:~:text=14%20GB-,macos%2Dlatest%20or%20macos%2D14,-The%20macos%2Dlatestlabel
|
os: macos-13, #macos-latest or macos-14 use M1 now, https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#:~:text=14%20GB-,macos%2Dlatest%20or%20macos%2D14,-The%20macos%2Dlatestlabel
|
||||||
# extra-build-args: "",
|
extra-build-args: "",
|
||||||
# arch: x86_64,
|
arch: x86_64,
|
||||||
# vcpkg-triplet: x64-osx,
|
vcpkg-triplet: x64-osx,
|
||||||
# }
|
}
|
||||||
- {
|
- {
|
||||||
target: aarch64-apple-darwin,
|
target: aarch64-apple-darwin,
|
||||||
os: macos-latest,
|
os: macos-latest,
|
||||||
@@ -727,8 +727,8 @@ jobs:
|
|||||||
|
|
||||||
if [ -n "$DMG_FILE" ]; then
|
if [ -n "$DMG_FILE" ]; then
|
||||||
echo "Found DMG file: $DMG_FILE"
|
echo "Found DMG file: $DMG_FILE"
|
||||||
mv "$DMG_FILE" "${{ inputs.filename }}.dmg"
|
mv "$DMG_FILE" "${{ inputs.filename }}-${{ matrix.job.arch }}.dmg"
|
||||||
echo "Renamed to ${{ inputs.filename }}.dmg"
|
echo "Renamed to ${{ inputs.filename }}-${{ matrix.job.arch }}.dmg"
|
||||||
else
|
else
|
||||||
echo "No DMG file found matching the pattern"
|
echo "No DMG file found matching the pattern"
|
||||||
exit 1
|
exit 1
|
||||||
@@ -741,7 +741,7 @@ jobs:
|
|||||||
curl -i -X POST \
|
curl -i -X POST \
|
||||||
-H "Content-Type: multipart/form-data" \
|
-H "Content-Type: multipart/form-data" \
|
||||||
-H "Authorization: Bearer ${{ fromJson(inputs.extras).token }}" \
|
-H "Authorization: Bearer ${{ fromJson(inputs.extras).token }}" \
|
||||||
-F "file=@$GITHUB_WORKSPACE/${{ inputs.filename }}.dmg" \
|
-F "file=@$GITHUB_WORKSPACE/${{ inputs.filename }}-${{ matrix.job.arch }}.dmg" \
|
||||||
-F "uuid=${{ inputs.uuid }}" \
|
-F "uuid=${{ inputs.uuid }}" \
|
||||||
"${{ secrets.GENURL }}/save_custom_client"
|
"${{ secrets.GENURL }}/save_custom_client"
|
||||||
|
|
||||||
@@ -753,7 +753,7 @@ jobs:
|
|||||||
curl -i -X POST \
|
curl -i -X POST \
|
||||||
-H "Content-Type: multipart/form-data" \
|
-H "Content-Type: multipart/form-data" \
|
||||||
-H "Authorization: Bearer ${{ fromJson(inputs.extras).token }}" \
|
-H "Authorization: Bearer ${{ fromJson(inputs.extras).token }}" \
|
||||||
-F "file=@$GITHUB_WORKSPACE/${{ inputs.filename }}.dmg" \
|
-F "file=@$GITHUB_WORKSPACE/${{ inputs.filename }}-${{ matrix.job.arch }}.dmg" \
|
||||||
"${{ inputs.apiServer }}/api/save_custom_client"
|
"${{ inputs.apiServer }}/api/save_custom_client"
|
||||||
|
|
||||||
- name: Report Status
|
- name: Report Status
|
||||||
|
|||||||
36
.github/workflows/generator-windows.yml
vendored
36
.github/workflows/generator-windows.yml
vendored
@@ -69,7 +69,7 @@ env:
|
|||||||
TAG_NAME: "${{ inputs.upload-tag }}"
|
TAG_NAME: "${{ inputs.upload-tag }}"
|
||||||
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
|
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
|
||||||
# vcpkg version: 2024.07.12
|
# vcpkg version: 2024.07.12
|
||||||
VCPKG_COMMIT_ID: "6f29f12e82a8293156836ad81cc9bf5af41fe836"
|
VCPKG_COMMIT_ID: "460551b0ec06be1ba6b918448bf3b0f44add813d"
|
||||||
VERSION: "${{ fromJson(inputs.extras).version }}"
|
VERSION: "${{ fromJson(inputs.extras).version }}"
|
||||||
NDK_VERSION: "r27c"
|
NDK_VERSION: "r27c"
|
||||||
#signing keys env variable checks
|
#signing keys env variable checks
|
||||||
@@ -450,14 +450,44 @@ jobs:
|
|||||||
|
|
||||||
- name: Build rustdesk
|
- name: Build rustdesk
|
||||||
run: |
|
run: |
|
||||||
|
# Windows: build RustDesk
|
||||||
|
python3 .\build.py --portable --hwcodec --flutter --vram --skip-portable-pack
|
||||||
|
mv ./flutter/build/windows/x64/runner/Release ./rustdesk
|
||||||
|
|
||||||
|
# Download usbmmidd_v2.zip and extract it to ./rustdesk
|
||||||
Invoke-WebRequest -Uri https://github.com/rustdesk-org/rdev/releases/download/usbmmidd_v2/usbmmidd_v2.zip -OutFile usbmmidd_v2.zip
|
Invoke-WebRequest -Uri https://github.com/rustdesk-org/rdev/releases/download/usbmmidd_v2/usbmmidd_v2.zip -OutFile usbmmidd_v2.zip
|
||||||
Expand-Archive usbmmidd_v2.zip -DestinationPath . -Force
|
Expand-Archive usbmmidd_v2.zip -DestinationPath . -Force
|
||||||
python3 .\build.py --portable --hwcodec --flutter --vram --skip-portable-pack
|
|
||||||
Remove-Item -Path usbmmidd_v2\Win32 -Recurse
|
Remove-Item -Path usbmmidd_v2\Win32 -Recurse
|
||||||
Remove-Item -Path "usbmmidd_v2\deviceinstaller64.exe", "usbmmidd_v2\deviceinstaller.exe", "usbmmidd_v2\usbmmidd.bat"
|
Remove-Item -Path "usbmmidd_v2\deviceinstaller64.exe", "usbmmidd_v2\deviceinstaller.exe", "usbmmidd_v2\usbmmidd.bat"
|
||||||
mv ./flutter/build/windows/x64/runner/Release ./rustdesk
|
|
||||||
mv -Force .\usbmmidd_v2 ./rustdesk
|
mv -Force .\usbmmidd_v2 ./rustdesk
|
||||||
|
|
||||||
|
# Download printer driver files and extract them to ./rustdesk
|
||||||
|
try {
|
||||||
|
Invoke-WebRequest -Uri https://github.com/rustdesk/hbb_common/releases/download/driver/rustdesk_printer_driver_v4.zip -OutFile rustdesk_printer_driver_v4.zip
|
||||||
|
Invoke-WebRequest -Uri https://github.com/rustdesk/hbb_common/releases/download/driver/printer_driver_adapter.zip -OutFile printer_driver_adapter.zip
|
||||||
|
Invoke-WebRequest -Uri https://github.com/rustdesk/hbb_common/releases/download/driver/sha256sums -OutFile sha256sums
|
||||||
|
|
||||||
|
# Check and move the files
|
||||||
|
$checksum_driver = (Select-String -Path .\sha256sums -Pattern '^([a-fA-F0-9]{64}) \*rustdesk_printer_driver_v4\.zip$').Matches.Groups[1].Value
|
||||||
|
$downloadsum_driver = Get-FileHash -Path rustdesk_printer_driver_v4.zip -Algorithm SHA256
|
||||||
|
$checksum_dll = (Select-String -Path .\sha256sums -Pattern '^([a-fA-F0-9]{64}) \*printer_driver_adapter\.zip$').Matches.Groups[1].Value
|
||||||
|
$downloadsum_dll = Get-FileHash -Path printer_driver_adapter.zip -Algorithm SHA256
|
||||||
|
if ($checksum_driver -eq $downloadsum_driver.Hash -and $checksum_dll -eq $downloadsum_dll.Hash) {
|
||||||
|
Write-Output "rustdesk_printer_driver_v4, checksums match, extract the file."
|
||||||
|
Expand-Archive rustdesk_printer_driver_v4.zip -DestinationPath .
|
||||||
|
mkdir ./rustdesk/drivers
|
||||||
|
mv -Force .\rustdesk_printer_driver_v4 ./rustdesk/drivers/RustDeskPrinterDriver
|
||||||
|
Expand-Archive printer_driver_adapter.zip -DestinationPath .
|
||||||
|
mv -Force .\printer_driver_adapter.dll ./rustdesk
|
||||||
|
} elseif ($checksum_driver -ne $downloadsum_driver.Hash) {
|
||||||
|
Write-Output "rustdesk_printer_driver_v4, checksums do not match, ignore the file."
|
||||||
|
} else {
|
||||||
|
Write-Output "printer_driver_adapter.dll, checksums do not match, ignore the file."
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
Write-Host "Ingore the printer driver error."
|
||||||
|
}
|
||||||
|
|
||||||
- name: icon stuff
|
- name: icon stuff
|
||||||
if: ${{ inputs.iconlink != 'false' }}
|
if: ${{ inputs.iconlink != 'false' }}
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from PIL import Image
|
|||||||
class GenerateForm(forms.Form):
|
class GenerateForm(forms.Form):
|
||||||
#Platform
|
#Platform
|
||||||
platform = forms.ChoiceField(choices=[('windows','Windows'),('linux','Linux (currently unavailable)'),('android','Android'),('macos','macOS')], initial='windows')
|
platform = forms.ChoiceField(choices=[('windows','Windows'),('linux','Linux (currently unavailable)'),('android','Android'),('macos','macOS')], initial='windows')
|
||||||
version = forms.ChoiceField(choices=[('master','nightly'),('1.3.8','1.3.8'),('1.3.7','1.3.7'),('1.3.6','1.3.6'),('1.3.5','1.3.5'),('1.3.4','1.3.4'),('1.3.3','1.3.3')], initial='1.3.8')
|
version = forms.ChoiceField(choices=[('master','nightly'),('1.3.9','1.3.9'),('1.3.8','1.3.8'),('1.3.7','1.3.7'),('1.3.6','1.3.6'),('1.3.5','1.3.5'),('1.3.4','1.3.4'),('1.3.3','1.3.3')], initial='1.3.9')
|
||||||
help_text="'master' is the development version (nightly build) with the latest features but may be less stable"
|
help_text="'master' is the development version (nightly build) with the latest features but may be less stable"
|
||||||
delayFix = forms.BooleanField(initial=True, required=False)
|
delayFix = forms.BooleanField(initial=True, required=False)
|
||||||
|
|
||||||
|
|||||||
@@ -130,16 +130,21 @@
|
|||||||
<a href='/download?filename={{filename}}.exe&uuid={{uuid}}' class="download-link">Download {{filename}}.exe</a>
|
<a href='/download?filename={{filename}}.exe&uuid={{uuid}}' class="download-link">Download {{filename}}.exe</a>
|
||||||
<a href='/download?filename={{filename}}.msi&uuid={{uuid}}' class="download-link">Download {{filename}}.msi</a>
|
<a href='/download?filename={{filename}}.msi&uuid={{uuid}}' class="download-link">Download {{filename}}.msi</a>
|
||||||
{% elif platform == 'linux' %}
|
{% elif platform == 'linux' %}
|
||||||
<a href='/download?filename={{filename}}.deb&uuid={{uuid}}' class="download-link">Download {{filename}}.deb</a>
|
<a href='/download?filename={{filename}}-x86_64.deb&uuid={{uuid}}' class="download-link">Download {{filename}}-x86_64.deb</a>
|
||||||
<a href='/download?filename={{filename}}.rpm&uuid={{uuid}}' class="download-link">Download {{filename}}.rpm</a>
|
<a href='/download?filename={{filename}}-x86_64.rpm&uuid={{uuid}}' class="download-link">Download {{filename}}-x86_64.rpm</a>
|
||||||
<a href='/download?filename={{filename}}-suse.rpm&uuid={{uuid}}' class="download-link">Download {{filename}}-suse.rpm</a>
|
<a href='/download?filename={{filename}}-suse-x86_64.rpm&uuid={{uuid}}' class="download-link">Download {{filename}}-suse-x86_64.rpm</a>
|
||||||
<a href='/download?filename={{filename}}.pkg.tar.zst&uuid={{uuid}}' class="download-link">Download {{filename}}.pkg.tar.zst</a>
|
<a href='/download?filename={{filename}}-x86_64.pkg.tar.zst&uuid={{uuid}}' class="download-link">Download {{filename}}-x86_64.pkg.tar.zst</a>
|
||||||
|
<a href='/download?filename={{filename}}-aarch64.deb&uuid={{uuid}}' class="download-link">Download {{filename}}-aarch64.deb</a>
|
||||||
|
<a href='/download?filename={{filename}}-aarch64.rpm&uuid={{uuid}}' class="download-link">Download {{filename}}-aarch64.rpm</a>
|
||||||
|
<a href='/download?filename={{filename}}-suse-aarch64.rpm&uuid={{uuid}}' class="download-link">Download {{filename}}-suse-aarch64.rpm</a>
|
||||||
|
<a href='/download?filename={{filename}}-aarch64.pkg.tar.zst&uuid={{uuid}}' class="download-link">Download {{filename}}-aarch64.pkg.tar.zst</a>
|
||||||
{% elif platform == 'android' %}
|
{% elif platform == 'android' %}
|
||||||
<a href='/download?filename={{filename}}-aarch64.apk&uuid={{uuid}}' class="download-link">Download {{filename}}-aarch64.apk</a>
|
<a href='/download?filename={{filename}}-aarch64.apk&uuid={{uuid}}' class="download-link">Download {{filename}}-aarch64.apk</a>
|
||||||
<a href='/download?filename={{filename}}-x86_64.apk&uuid={{uuid}}' class="download-link">Download {{filename}}-x86_64.apk</a>
|
<a href='/download?filename={{filename}}-x86_64.apk&uuid={{uuid}}' class="download-link">Download {{filename}}-x86_64.apk</a>
|
||||||
<a href='/download?filename={{filename}}-armv7.apk&uuid={{uuid}}' class="download-link">Download {{filename}}-armv7.apk</a>
|
<a href='/download?filename={{filename}}-armv7.apk&uuid={{uuid}}' class="download-link">Download {{filename}}-armv7.apk</a>
|
||||||
{% elif platform == 'macos' %}
|
{% elif platform == 'macos' %}
|
||||||
<a href='/download?filename={{filename}}.dmg&uuid={{uuid}}' class="download-link">Download {{filename}}.dmg</a>
|
<a href='/download?filename={{filename}}-x86_64.dmg&uuid={{uuid}}' class="download-link">Download {{filename}}-x86_64.dmg</a>
|
||||||
|
<a href='/download?filename={{filename}}-aarch64.dmg&uuid={{uuid}}' class="download-link">Download {{filename}}-aarch64.dmg</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<p>Error: No file generated</p>
|
<p>Error: No file generated</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
60
rdgenerator/templates/maintenance.html
Normal file
60
rdgenerator/templates/maintenance.html
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<title>Rustdesk Client Generator</title>
|
||||||
|
<style>
|
||||||
|
html, body {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
background-color: #fff;
|
||||||
|
background: radial-gradient(circle at center, #fff 0%, #f8f8f8 75%, #ebebeb 100%);
|
||||||
|
color: #222;
|
||||||
|
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
|
||||||
|
font-size: 1rem;
|
||||||
|
line-height: 1.5;
|
||||||
|
margin: 0;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
main {
|
||||||
|
padding: 1rem;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
font-size: 2.5rem;
|
||||||
|
line-height: 1.1;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
@media screen and (max-width: 480px) {
|
||||||
|
h1 {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
h1::after {
|
||||||
|
content: "";
|
||||||
|
background-color: #ffe800;
|
||||||
|
background: repeating-linear-gradient(45deg, #ffe800, #ffe800 0.5rem, #222 0.5rem, #222 1.0rem);
|
||||||
|
display: block;
|
||||||
|
height: 0.5rem;
|
||||||
|
margin-top: 1rem;
|
||||||
|
}
|
||||||
|
img {
|
||||||
|
max-width: 100%;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
margin: 1rem 0 0 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<main>
|
||||||
|
<h1>Rustdesk Client Generator</h1>
|
||||||
|
<p>The Rustdesk Client Generator is currently under construction, please come back at a later time.</p>
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -225,6 +225,7 @@ def generator_view(request):
|
|||||||
return JsonResponse({"error": "Something went wrong"})
|
return JsonResponse({"error": "Something went wrong"})
|
||||||
else:
|
else:
|
||||||
form = GenerateForm()
|
form = GenerateForm()
|
||||||
|
#return render(request, 'maintenance.html')
|
||||||
return render(request, 'generator.html', {'form': form})
|
return render(request, 'generator.html', {'form': form})
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user