@@ -71,45 +71,36 @@ jobs:
7171 flutter config --enable-linux-desktop
7272 cargo make --env APP_VERSION=${{ github.ref_name }} --profile production-linux-x86_64 appflowy
7373
74- - name : Build Linux package
75- working-directory : ${{ env.LINUX_APP_RELEASE_PATH }}
74+ - name : Configuring Linux Package
75+ working-directory : frontend
7676 run : |
77- mkdir -p package/opt && mv AppFlowy package/opt/
78- cd package && mkdir DEBIAN
77+ mkdir -p ../${{ env.LINUX_APP_RELEASE_PATH }}/package/opt
78+ mkdir -p ../${{ env.LINUX_APP_RELEASE_PATH }}/package/usr/share/applications
79+ cp -r ./scripts/linux_installer ../${{ env.LINUX_APP_RELEASE_PATH }}/package/DEBIAN
80+ cd ../${{ env.LINUX_APP_RELEASE_PATH }}/package/DEBIAN
7981 # Create control file
8082 printf 'Package: AppFlowy
8183 Version: %s
8284 Architecture: amd64
8385 Essential: no
8486 Priority: optional
8587 Maintainer: AppFlowy
86- Description: An Open Source Alternative to Notion\n' "${{ github.ref_name }}" > DEBIAN/control
87-
88- # postinst script for creating symlink
89- printf '#!/bin/bash
90- if [ -e /usr/local/bin/appflowy ]; then
91- echo "Symlink already exists, skipping."
92- else
93- echo "Creating Symlink in /usr/local/bin/appflowy"
94- ln -s /opt/AppFlowy/app_flowy /usr/local/bin/appflowy
95- fi' > DEBIAN/postinst
96- chmod 0755 DEBIAN/postinst
97-
98- # postrm script for cleaning up residuals
99- printf '#!/bin/bash
100- if [ -e /usr/local/bin/appflowy ]; then
101- rm /usr/local/bin/appflowy
102- fi' > DEBIAN/postrm
103- chmod 0755 DEBIAN/postrm
104-
105- mkdir -p usr/share/applications
88+ Description: An Open Source Alternative to Notion\n' "${{ github.ref_name }}" > control
89+ chmod 0755 {postinst,postrm}
90+
91+ - name : Build Linux package
92+ working-directory : ${{ env.LINUX_APP_RELEASE_PATH }}
93+ run : |
94+ mv AppFlowy package/opt/
95+ cd package
96+
10697 # Update Exec & icon path in desktop entry
10798 grep -rl "\[CHANGE_THIS\]" ./opt/AppFlowy/appflowy.desktop.temp | xargs sed -i "s/\[CHANGE_THIS\]/\/opt/"
10899 # Add desktop entry in package
109100 mv ./opt/AppFlowy/appflowy.desktop.temp ./usr/share/applications/appflowy.desktop
110101
111102 # Build
112- cd ../ && dpkg-deb --build --root-owner-group package ${{ env.LINUX_PACKAGE_NAME }}
103+ cd ../ && dpkg-deb --build --root-owner-group -Z xz package ${{ env.LINUX_PACKAGE_NAME }}
113104
114105 - name : Upload Release Asset
115106 id : upload-release-asset
@@ -133,6 +124,87 @@ jobs:
133124 asset_name : ${{ env.LINUX_PACKAGE_NAME }}
134125 asset_content_type : application/octet-stream
135126
127+ build-linux-x86-alt :
128+ runs-on : ubuntu-18.04
129+ needs : create-release
130+ env :
131+ LINUX_APP_RELEASE_PATH : frontend/app_flowy/product/${{ github.ref_name }}/linux/Release
132+ LINUX_PACKAGE_NAME : AppFlowy_${{ github.ref_name }}_linux-amd64-alt.deb
133+ steps :
134+ - name : Checkout
135+ uses : actions/checkout@v2
136+
137+ - name : Setup environment - Rust and Cargo
138+ uses : actions-rs/toolchain@v1
139+ with :
140+ toolchain : ' stable-2022-04-07'
141+
142+ - name : Setup environment - Flutter
143+ uses : subosito/flutter-action@v2
144+ with :
145+ channel : ' stable'
146+ flutter-version : ' 3.0.5'
147+
148+ - name : Pre build
149+ working-directory : frontend
150+ run : |
151+ sudo wget -qO /etc/apt/trusted.gpg.d/dart_linux_signing_key.asc https://dl-ssl.google.com/linux/linux_signing_key.pub
152+ sudo apt-get update
153+ sudo apt-get install -y build-essential libsqlite3-dev libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev
154+ sudo apt-get install keybinder-3.0
155+ source $HOME/.cargo/env
156+ cargo install --force cargo-make
157+ cargo install --force duckscript_cli
158+ cargo make appflowy-deps-tools
159+
160+ - name : Build Linux app
161+ working-directory : frontend
162+ run : |
163+ flutter config --enable-linux-desktop
164+ cargo make --env APP_VERSION=${{ github.ref_name }} --profile production-linux-x86_64 appflowy
165+
166+ - name : Configuring Linux Package
167+ working-directory : frontend
168+ run : |
169+ mkdir -p ../${{ env.LINUX_APP_RELEASE_PATH }}/package/opt
170+ mkdir -p ../${{ env.LINUX_APP_RELEASE_PATH }}/package/usr/share/applications
171+ cp -r ./scripts/linux_installer ../${{ env.LINUX_APP_RELEASE_PATH }}/package/DEBIAN
172+ cd ../${{ env.LINUX_APP_RELEASE_PATH }}/package/DEBIAN
173+ # Create control file
174+ printf 'Package: AppFlowy
175+ Version: %s
176+ Architecture: amd64
177+ Essential: no
178+ Priority: optional
179+ Maintainer: AppFlowy
180+ Description: An Open Source Alternative to Notion\n' "${{ github.ref_name }}" > control
181+ chmod 0755 {postinst,postrm}
182+
183+ - name : Build Linux package
184+ working-directory : ${{ env.LINUX_APP_RELEASE_PATH }}
185+ run : |
186+ mv AppFlowy package/opt/
187+ cd package
188+
189+ # Update Exec & icon path in desktop entry
190+ grep -rl "\[CHANGE_THIS\]" ./opt/AppFlowy/appflowy.desktop.temp | xargs sed -i "s/\[CHANGE_THIS\]/\/opt/"
191+ # Add desktop entry in package
192+ mv ./opt/AppFlowy/appflowy.desktop.temp ./usr/share/applications/appflowy.desktop
193+
194+ # Build
195+ cd ../ && dpkg-deb --build --root-owner-group -Z xz package ${{ env.LINUX_PACKAGE_NAME }}
196+
197+ - name : Upload Alternative Release Asset Install Package
198+ id : upload-release-asset-install-package
199+ uses : actions/upload-release-asset@v1
200+ env :
201+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
202+ with :
203+ upload_url : ${{ needs.create-release.outputs.upload_url }}
204+ asset_path : ${{ env.LINUX_APP_RELEASE_PATH }}/${{ env.LINUX_PACKAGE_NAME }}
205+ asset_name : ${{ env.LINUX_PACKAGE_NAME }}
206+ asset_content_type : application/octet-stream
207+
136208 build-macos-x86_64 :
137209 runs-on : macos-latest
138210 needs : create-release
0 commit comments