@@ -71,45 +71,29 @@ 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 : Configuring Linux Package
75+ working-directory : frontend
76+ run : |
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
81+ grep -rl "\[CHANGE_THIS\]" ./control | xargs sed -i "s/\[CHANGE_THIS\]/${{ github.ref_name }}/"
82+ chmod 0755 {postinst,postrm}
83+
7484 - name : Build Linux package
7585 working-directory : ${{ env.LINUX_APP_RELEASE_PATH }}
7686 run : |
77- mkdir -p package/opt && mv AppFlowy package/opt/
78- cd package && mkdir DEBIAN
79- # Create control file
80- printf 'Package: AppFlowy
81- Version: %s
82- Architecture: amd64
83- Essential: no
84- Priority: optional
85- 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
87+ mv AppFlowy package/opt/
88+ cd package
89+
10690 # Update Exec & icon path in desktop entry
10791 grep -rl "\[CHANGE_THIS\]" ./opt/AppFlowy/appflowy.desktop.temp | xargs sed -i "s/\[CHANGE_THIS\]/\/opt/"
10892 # Add desktop entry in package
10993 mv ./opt/AppFlowy/appflowy.desktop.temp ./usr/share/applications/appflowy.desktop
11094
11195 # Build
112- cd ../ && dpkg-deb --build --root-owner-group package ${{ env.LINUX_PACKAGE_NAME }}
96+ cd ../ && dpkg-deb --build --root-owner-group -Z xz package ${{ env.LINUX_PACKAGE_NAME }}
11397
11498 - name : Upload Release Asset
11599 id : upload-release-asset
@@ -133,6 +117,80 @@ jobs:
133117 asset_name : ${{ env.LINUX_PACKAGE_NAME }}
134118 asset_content_type : application/octet-stream
135119
120+ build-linux-x86-alt :
121+ runs-on : ubuntu-18.04
122+ needs : create-release
123+ env :
124+ LINUX_APP_RELEASE_PATH : frontend/app_flowy/product/${{ github.ref_name }}/linux/Release
125+ LINUX_PACKAGE_NAME : AppFlowy_${{ github.ref_name }}_linux-amd64-alt.deb
126+ steps :
127+ - name : Checkout
128+ uses : actions/checkout@v2
129+
130+ - name : Setup environment - Rust and Cargo
131+ uses : actions-rs/toolchain@v1
132+ with :
133+ toolchain : ' stable-2022-04-07'
134+
135+ - name : Setup environment - Flutter
136+ uses : subosito/flutter-action@v2
137+ with :
138+ channel : ' stable'
139+ flutter-version : ' 3.0.5'
140+
141+ - name : Pre build
142+ working-directory : frontend
143+ run : |
144+ sudo wget -qO /etc/apt/trusted.gpg.d/dart_linux_signing_key.asc https://dl-ssl.google.com/linux/linux_signing_key.pub
145+ sudo apt-get update
146+ sudo apt-get install -y build-essential libsqlite3-dev libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev
147+ sudo apt-get install keybinder-3.0
148+ source $HOME/.cargo/env
149+ cargo install --force cargo-make
150+ cargo install --force duckscript_cli
151+ cargo make appflowy-deps-tools
152+
153+ - name : Build Linux app
154+ working-directory : frontend
155+ run : |
156+ flutter config --enable-linux-desktop
157+ cargo make --env APP_VERSION=${{ github.ref_name }} --profile production-linux-x86_64 appflowy
158+
159+ - name : Configuring Linux Package
160+ working-directory : frontend
161+ run : |
162+ mkdir -p ../${{ env.LINUX_APP_RELEASE_PATH }}/package/opt
163+ mkdir -p ../${{ env.LINUX_APP_RELEASE_PATH }}/package/usr/share/applications
164+ cp -r ./scripts/linux_installer ../${{ env.LINUX_APP_RELEASE_PATH }}/package/DEBIAN
165+ cd ../${{ env.LINUX_APP_RELEASE_PATH }}/package/DEBIAN
166+ grep -rl "\[CHANGE_THIS\]" ./control | xargs sed -i "s/\[CHANGE_THIS\]/${{ github.ref_name }}/"
167+ chmod 0755 {postinst,postrm}
168+
169+ - name : Build Linux package
170+ working-directory : ${{ env.LINUX_APP_RELEASE_PATH }}
171+ run : |
172+ mv AppFlowy package/opt/
173+ cd package
174+
175+ # Update Exec & icon path in desktop entry
176+ grep -rl "\[CHANGE_THIS\]" ./opt/AppFlowy/appflowy.desktop.temp | xargs sed -i "s/\[CHANGE_THIS\]/\/opt/"
177+ # Add desktop entry in package
178+ mv ./opt/AppFlowy/appflowy.desktop.temp ./usr/share/applications/appflowy.desktop
179+
180+ # Build
181+ cd ../ && dpkg-deb --build --root-owner-group -Z xz package ${{ env.LINUX_PACKAGE_NAME }}
182+
183+ - name : Upload Alternative Release Asset Install Package
184+ id : upload-release-asset-install-package
185+ uses : actions/upload-release-asset@v1
186+ env :
187+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
188+ with :
189+ upload_url : ${{ needs.create-release.outputs.upload_url }}
190+ asset_path : ${{ env.LINUX_APP_RELEASE_PATH }}/${{ env.LINUX_PACKAGE_NAME }}
191+ asset_name : ${{ env.LINUX_PACKAGE_NAME }}
192+ asset_content_type : application/octet-stream
193+
136194 build-macos-x86_64 :
137195 runs-on : macos-latest
138196 needs : create-release
0 commit comments