Просмотр исходного кода

Merge pull request #156 from paspo/windows-build

test windows build
RustDesk лет назад: 3
Родитель
Сommit
753c774380
1 измененных файлов с 57 добавлено и 19 удалено
  1. 57 19
      .github/workflows/build.yaml

+ 57 - 19
.github/workflows/build.yaml

@@ -44,9 +44,11 @@ jobs:
44
       - name: Install toolchain
44
       - name: Install toolchain
45
         uses: actions-rs/toolchain@v1
45
         uses: actions-rs/toolchain@v1
46
         with:
46
         with:
47
-          toolchain: nightly
47
+          toolchain: "1.62"
48
           override: true
48
           override: true
49
           default: true
49
           default: true
50
+          components: rustfmt
51
+          profile: minimal
50
           target: ${{ matrix.job.target }}
52
           target: ${{ matrix.job.target }}
51
 
53
 
52
       - name: Build
54
       - name: Build
@@ -56,59 +58,95 @@ jobs:
56
           args: --release --all-features --target=${{ matrix.job.target }}
58
           args: --release --all-features --target=${{ matrix.job.target }}
57
           use-cross: true  
59
           use-cross: true  
58
 
60
 
59
-      # - name: Run tests
60
-      #   run: cargo test --verbose
61
-
62
       - name: Exec chmod
61
       - name: Exec chmod
63
         run: chmod -v a+x target/${{ matrix.job.target }}/release/*
62
         run: chmod -v a+x target/${{ matrix.job.target }}/release/*
64
 
63
 
65
       - name: Publish Artifacts
64
       - name: Publish Artifacts
66
         uses: actions/upload-artifact@v3
65
         uses: actions/upload-artifact@v3
67
         with:
66
         with:
68
-          name: binaries-${{ matrix.job.name }}
67
+          name: binaries-linux-${{ matrix.job.name }}
69
           path: |
68
           path: |
70
             target/${{ matrix.job.target }}/release/hbbr
69
             target/${{ matrix.job.target }}/release/hbbr
71
             target/${{ matrix.job.target }}/release/hbbs
70
             target/${{ matrix.job.target }}/release/hbbs
72
             target/${{ matrix.job.target }}/release/rustdesk-utils
71
             target/${{ matrix.job.target }}/release/rustdesk-utils
73
           if-no-files-found: error
72
           if-no-files-found: error
74
 
73
 
74
+  build-win:
75
+    name: Build - windows
76
+    runs-on: windows-2019
77
+
78
+    steps:
79
+      
80
+      - name: Checkout
81
+        uses: actions/checkout@v3
82
+
83
+      - name: Install toolchain
84
+        uses: actions-rs/toolchain@v1
85
+        with:
86
+          toolchain: "1.62"
87
+          override: true
88
+          default: true
89
+          components: rustfmt
90
+          profile: minimal
91
+          target: x86_64-pc-windows-msvc
92
+
93
+      - name: Build
94
+        uses: actions-rs/cargo@v1
95
+        with:
96
+          command: build
97
+          args: --release --all-features --target=x86_64-pc-windows-msvc
98
+          use-cross: true  
99
+
100
+      - name: Publish Artifacts
101
+        uses: actions/upload-artifact@v3
102
+        with:
103
+          name: binaries-windows-x86_64
104
+          path: |
105
+            target\x86_64-pc-windows-msvc\release\hbbr.exe
106
+            target\x86_64-pc-windows-msvc\release\hbbs.exe
107
+            target\x86_64-pc-windows-msvc\release\rustdesk-utils.exe 
108
+          if-no-files-found: error
109
+
75
   # github (draft) release with all binaries
110
   # github (draft) release with all binaries
76
   release:
111
   release:
77
 
112
 
78
     name: Github release
113
     name: Github release
79
-    needs: build
114
+    needs: 
115
+      - build
116
+      - build-win
80
     runs-on: ubuntu-22.04
117
     runs-on: ubuntu-22.04
81
     strategy:
118
     strategy:
82
       fail-fast: false
119
       fail-fast: false
83
       matrix:
120
       matrix:
84
         job:
121
         job:
85
-          - { name: "amd64" }
86
-          - { name: "arm64v8" }
87
-          - { name: "armv7" }
88
-          - { name: "i386" }
122
+          - { os: "linux", name: "amd64" }
123
+          - { os: "linux", name: "arm64v8" }
124
+          - { os: "linux", name: "armv7" }
125
+          - { os: "linux", name: "i386" }
126
+          - { os: "windows", name: "x86_64" }
89
 
127
 
90
     steps:
128
     steps:
91
 
129
 
92
-      - name: Download binaries (${{ matrix.job.name }})
130
+      - name: Download binaries (${{ matrix.job.os }} - ${{ matrix.job.name }})
93
         uses: actions/download-artifact@v3
131
         uses: actions/download-artifact@v3
94
         with:
132
         with:
95
-          name: binaries-${{ matrix.job.name }}
133
+          name: binaries-${{ matrix.job.os }}-${{ matrix.job.name }}
96
           path: ${{ matrix.job.name }}
134
           path: ${{ matrix.job.name }}
97
 
135
 
98
       - name: Exec chmod
136
       - name: Exec chmod
99
         run: chmod -v a+x ${{ matrix.job.name }}/*
137
         run: chmod -v a+x ${{ matrix.job.name }}/*
100
 
138
 
101
-      - name: Pack files (${{ matrix.job.name }})
139
+      - name: Pack files (${{ matrix.job.os }} - ${{ matrix.job.name }})
102
         run: |
140
         run: |
103
           sudo apt update
141
           sudo apt update
104
           DEBIAN_FRONTEND=noninteractive sudo apt install -y zip
142
           DEBIAN_FRONTEND=noninteractive sudo apt install -y zip
105
-          zip ${{ matrix.job.name }}/rustdesk-server-linux-${{ matrix.job.name }}.zip ${{ matrix.job.name }}/hbbr ${{ matrix.job.name }}/hbbs ${{ matrix.job.name }}/rustdesk-utils
143
+          zip ${{ matrix.job.name }}/rustdesk-server-${{ matrix.job.os }}-${{ matrix.job.name }}.zip ${{ matrix.job.name }}/*
106
 
144
 
107
-      - name: Create Release (${{ matrix.job.name }})
145
+      - name: Create Release (${{ matrix.job.os }} - (${{ matrix.job.name }})
108
         uses: softprops/action-gh-release@v1
146
         uses: softprops/action-gh-release@v1
109
         with:
147
         with:
110
           draft: true
148
           draft: true
111
-          files: ${{ matrix.job.name }}/rustdesk-server-linux-${{ matrix.job.name }}.zip
149
+          files: ${{ matrix.job.name }}/rustdesk-server-${{ matrix.job.os }}-${{ matrix.job.name }}.zip
112
             
150
             
113
   # docker build and push of single-arch images
151
   # docker build and push of single-arch images
114
   docker:
152
   docker:
@@ -133,7 +171,7 @@ jobs:
133
       - name: Download binaries
171
       - name: Download binaries
134
         uses: actions/download-artifact@v3
172
         uses: actions/download-artifact@v3
135
         with:
173
         with:
136
-          name: binaries-${{ matrix.job.name }}
174
+          name: binaries-linux-${{ matrix.job.name }}
137
           path: docker/rootfs/usr/bin
175
           path: docker/rootfs/usr/bin
138
 
176
 
139
       - name: Make binaries executable
177
       - name: Make binaries executable
@@ -253,7 +291,7 @@ jobs:
253
       - name: Download binaries
291
       - name: Download binaries
254
         uses: actions/download-artifact@v3
292
         uses: actions/download-artifact@v3
255
         with:
293
         with:
256
-          name: binaries-${{ matrix.job.name }}
294
+          name: binaries-linux-${{ matrix.job.name }}
257
           path: docker-classic/
295
           path: docker-classic/
258
 
296
 
259
       - name: Make binaries executable
297
       - name: Make binaries executable
@@ -320,7 +358,7 @@ jobs:
320
       - name: Download binaries
358
       - name: Download binaries
321
         uses: actions/download-artifact@v3
359
         uses: actions/download-artifact@v3
322
         with:
360
         with:
323
-          name: binaries-${{ matrix.job.name }}
361
+          name: binaries-linux-${{ matrix.job.name }}
324
           path: debian-build/${{ matrix.job.name }}/bin
362
           path: debian-build/${{ matrix.job.name }}/bin
325
 
363
 
326
       - name: Build package for ${{ matrix.job.name }} arch
364
       - name: Build package for ${{ matrix.job.name }} arch