mirror of
https://github.com/CringeStudios/element-desktop.git
synced 2025-01-18 23:44:59 +01:00
Ship linux tarball with static sqlcipher (#597)
This commit is contained in:
parent
743f5dc5de
commit
c10e666dad
19
.github/workflows/build_and_deploy.yaml
vendored
19
.github/workflows/build_and_deploy.yaml
vendored
@ -90,22 +90,37 @@ jobs:
|
|||||||
base-url: https://packages.element.io/${{ inputs.mode == 'release' && 'desktop' || 'nightly' }}
|
base-url: https://packages.element.io/${{ inputs.mode == 'release' && 'desktop' || 'nightly' }}
|
||||||
version: ${{ needs.prepare.outputs.macos-version }}
|
version: ${{ needs.prepare.outputs.macos-version }}
|
||||||
|
|
||||||
|
# We do not put this call into deploy-mode as we do not want it to add to the packages.element.io artifact
|
||||||
|
# We ship this build via reprepro only
|
||||||
linux:
|
linux:
|
||||||
if: github.event_name != 'workflow_dispatch' || inputs.linux
|
if: github.event_name != 'workflow_dispatch' || inputs.linux
|
||||||
needs: prepare
|
needs: prepare
|
||||||
name: Linux
|
name: Linux (sqlcipher system)
|
||||||
uses: ./.github/workflows/build_linux.yaml
|
uses: ./.github/workflows/build_linux.yaml
|
||||||
with:
|
with:
|
||||||
config: element.io/${{ inputs.mode || 'nightly' }}
|
config: element.io/${{ inputs.mode || 'nightly' }}
|
||||||
sqlcipher: system
|
sqlcipher: system
|
||||||
version: ${{ needs.prepare.outputs.linux-version }}
|
version: ${{ needs.prepare.outputs.linux-version }}
|
||||||
|
|
||||||
# This deploy job only handles Windows & macOS as those are stateless and static.
|
# We ship the static build via static tarball only
|
||||||
|
linux_static:
|
||||||
|
if: github.event_name != 'workflow_dispatch' || inputs.linux
|
||||||
|
needs: prepare
|
||||||
|
name: Linux (sqlcipher static)
|
||||||
|
uses: ./.github/workflows/build_linux.yaml
|
||||||
|
with:
|
||||||
|
deploy-mode: true
|
||||||
|
config: element.io/${{ inputs.mode || 'nightly' }}
|
||||||
|
sqlcipher: static
|
||||||
|
version: ${{ needs.prepare.outputs.linux-version }}
|
||||||
|
|
||||||
|
# This deploy job only handles Windows, macOS & linux_static as those are stateless and static.
|
||||||
# Linux will be deployed via reprepro after it, but we list it as a dependency to abort if it fails.
|
# Linux will be deployed via reprepro after it, but we list it as a dependency to abort if it fails.
|
||||||
deploy:
|
deploy:
|
||||||
needs:
|
needs:
|
||||||
- macos
|
- macos
|
||||||
- linux
|
- linux
|
||||||
|
- linux_static
|
||||||
- windows_32bit
|
- windows_32bit
|
||||||
- windows_64bit
|
- windows_64bit
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
34
.github/workflows/build_linux.yaml
vendored
34
.github/workflows/build_linux.yaml
vendored
@ -16,6 +16,10 @@ on:
|
|||||||
type: string
|
type: string
|
||||||
required: true
|
required: true
|
||||||
description: "How to link sqlcipher, one of 'system' | 'static'"
|
description: "How to link sqlcipher, one of 'system' | 'static'"
|
||||||
|
deploy-mode:
|
||||||
|
type: boolean
|
||||||
|
required: false
|
||||||
|
description: "Whether to arrange artifacts in the arrangement needed for deployment, skipping unrelated ones"
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -84,9 +88,37 @@ jobs:
|
|||||||
--deb-custom-control=debcontrol
|
--deb-custom-control=debcontrol
|
||||||
yarn build --publish never -l --config electron-builder.json
|
yarn build --publish never -l --config electron-builder.json
|
||||||
|
|
||||||
|
- name: Stash deb package
|
||||||
|
if: inputs.deploy-mode
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: linux-sqlcipher-${{ inputs.sqlcipher }}-deb
|
||||||
|
path: dist/*.deb
|
||||||
|
retention-days: 1
|
||||||
|
|
||||||
|
- name: Prepare artifacts for deployment
|
||||||
|
if: inputs.deploy-mode
|
||||||
|
run: |
|
||||||
|
mv dist _dist
|
||||||
|
mkdir -p "dist/install/linux/glibc-x86-64/"
|
||||||
|
mv _dist/*.tar.gz "dist/install/linux/glibc-x86-64"
|
||||||
|
|
||||||
|
# We don't wish to store the tarball for every nightly ever, so we only keep the latest
|
||||||
|
- name: "[Nightly] Strip version from tarball"
|
||||||
|
if: inputs.deploy-mode && inputs.version != ''
|
||||||
|
run: |
|
||||||
|
mv dist/install/linux/glibc-x86-64/*.tar.gz "dist/install/linux/glibc-x86-64/element-desktop-nightly.tar.gz"
|
||||||
|
|
||||||
|
- name: "[Release] Prepare release latest symlink"
|
||||||
|
if: inputs.deploy-mode && inputs.version == ''
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
ln -s "$(find . -type f -iname "*.tar.gz" | xargs -0 -n1 -- basename)" "element-desktop.tar.gz"
|
||||||
|
working-directory: "dist/install/linux/glibc-x86-64"
|
||||||
|
|
||||||
- name: Upload Artifacts
|
- name: Upload Artifacts
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: linux-sqlcipher-${{ inputs.sqlcipher }}
|
name: ${{ inputs.deploy-mode && 'packages.element.io' || format('linux-sqlcipher-{0}', inputs.sqlcipher) }}
|
||||||
path: dist
|
path: dist
|
||||||
retention-days: 1
|
retention-days: 1
|
||||||
|
2
.github/workflows/build_macos.yaml
vendored
2
.github/workflows/build_macos.yaml
vendored
@ -24,7 +24,7 @@ on:
|
|||||||
required: false
|
required: false
|
||||||
description: "Whether to sign & notarise the build, requires 'packages.element.io' environment"
|
description: "Whether to sign & notarise the build, requires 'packages.element.io' environment"
|
||||||
deploy-mode:
|
deploy-mode:
|
||||||
type: string
|
type: boolean
|
||||||
required: false
|
required: false
|
||||||
description: "Whether to arrange artifacts in the arrangement needed for deployment, skipping unrelated ones"
|
description: "Whether to arrange artifacts in the arrangement needed for deployment, skipping unrelated ones"
|
||||||
base-url:
|
base-url:
|
||||||
|
2
.github/workflows/build_windows.yaml
vendored
2
.github/workflows/build_windows.yaml
vendored
@ -24,7 +24,7 @@ on:
|
|||||||
required: false
|
required: false
|
||||||
description: "Whether to sign & notarise the build, requires 'packages.element.io' environment"
|
description: "Whether to sign & notarise the build, requires 'packages.element.io' environment"
|
||||||
deploy-mode:
|
deploy-mode:
|
||||||
type: string
|
type: boolean
|
||||||
required: false
|
required: false
|
||||||
description: "Whether to arrange artifacts in the arrangement needed for deployment, skipping unrelated ones"
|
description: "Whether to arrange artifacts in the arrangement needed for deployment, skipping unrelated ones"
|
||||||
jobs:
|
jobs:
|
||||||
|
Loading…
Reference in New Issue
Block a user