mirror of
https://github.com/element-hq/element-desktop
synced 2025-04-21 09:03:56 +02:00
Merge branch 't3chguy/test-release-assets' of https://github.com/vector-im/element-desktop into t3chguy/safeStorage
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> # Conflicts: # .github/workflows/build_and_test.yaml
This commit is contained in:
commit
a08aa8ee84
116
.github/workflows/build_and_test.yaml
vendored
116
.github/workflows/build_and_test.yaml
vendored
@ -13,8 +13,8 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
with:
|
with:
|
||||||
config: ${{ github.event.pull_request.base.ref == 'develop' && 'element.io/nightly' || 'element.io/release' }}
|
config: ${{ (github.event.pull_request.base.ref || github.ref_name) == 'develop' && 'element.io/nightly' || 'element.io/release' }}
|
||||||
version: ${{ github.event.pull_request.base.ref == 'develop' && 'develop' || '' }}
|
version: ${{ (github.event.pull_request.base.ref || github.ref_name) == 'develop' && 'develop' || '' }}
|
||||||
|
|
||||||
windows:
|
windows:
|
||||||
needs: fetch
|
needs: fetch
|
||||||
@ -43,112 +43,8 @@ jobs:
|
|||||||
name: macOS
|
name: macOS
|
||||||
uses: ./.github/workflows/build_macos.yaml
|
uses: ./.github/workflows/build_macos.yaml
|
||||||
|
|
||||||
test:
|
complete:
|
||||||
needs:
|
needs: [windows, linux, macos]
|
||||||
- macos
|
runs-on: ubuntu-22.04
|
||||||
- linux
|
|
||||||
- windows
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- name: macOS Universal
|
|
||||||
os: macos-14
|
|
||||||
artifact: macos
|
|
||||||
executable: "/Users/runner/Applications/Element.app/Contents/MacOS/Element"
|
|
||||||
# We need to mount the DMG and copy the app to the Applications folder as a mounted DMG is
|
|
||||||
# read-only and thus would not allow us to override the fuses as is required for Playwright.
|
|
||||||
prepare_cmd: |
|
|
||||||
hdiutil attach ./dist/*.dmg -mountpoint /Volumes/Element &&
|
|
||||||
rsync -a /Volumes/Element/Element.app ~/Applications/ &&
|
|
||||||
hdiutil detach /Volumes/Element
|
|
||||||
- name: "Linux (amd64) (sqlcipher: system)"
|
|
||||||
os: ubuntu-22.04
|
|
||||||
artifact: linux-amd64-sqlcipher-system
|
|
||||||
executable: "/opt/Element/element-desktop"
|
|
||||||
prepare_cmd: |
|
|
||||||
sudo apt-get -qq update
|
|
||||||
sudo apt install ./dist/*.deb
|
|
||||||
sudo apt install -y gnome-keyring dbus-user-session dbus dbus-x11
|
|
||||||
gnome-keyring-daemon --unlock
|
|
||||||
- name: "Linux (amd64) (sqlcipher: static)"
|
|
||||||
os: ubuntu-22.04
|
|
||||||
artifact: linux-amd64-sqlcipher-static
|
|
||||||
executable: "/opt/Element/element-desktop"
|
|
||||||
prepare_cmd: |
|
|
||||||
sudo apt-get -qq update
|
|
||||||
sudo apt install ./dist/*.deb
|
|
||||||
sudo apt install -y gnome-keyring dbus-user-session dbus dbus-x11
|
|
||||||
gnome-keyring-daemon --unlock
|
|
||||||
- name: "Linux (arm64) (sqlcipher: system)"
|
|
||||||
os: ubuntu-22.04-arm
|
|
||||||
artifact: linux-arm64-sqlcipher-system
|
|
||||||
executable: "/opt/Element/element-desktop"
|
|
||||||
prepare_cmd: |
|
|
||||||
sudo apt-get -qq update
|
|
||||||
sudo apt install ./dist/*.deb
|
|
||||||
sudo apt install -y gnome-keyring dbus-user-session dbus dbus-x11
|
|
||||||
gnome-keyring-daemon --unlock
|
|
||||||
- name: "Linux (arm64) (sqlcipher: static)"
|
|
||||||
os: ubuntu-22.04-arm
|
|
||||||
artifact: linux-arm64-sqlcipher-static
|
|
||||||
executable: "/opt/Element/element-desktop"
|
|
||||||
prepare_cmd: |
|
|
||||||
sudo apt-get -qq update
|
|
||||||
sudo apt install ./dist/*.deb
|
|
||||||
sudo apt install -y gnome-keyring dbus-user-session dbus dbus-x11
|
|
||||||
gnome-keyring-daemon --unlock
|
|
||||||
- name: Windows (x86)
|
|
||||||
os: windows-2022
|
|
||||||
artifact: win-ia32
|
|
||||||
executable: "./dist/win-ia32-unpacked/Element.exe"
|
|
||||||
- name: Windows (x64)
|
|
||||||
os: windows-2022
|
|
||||||
artifact: win-x64
|
|
||||||
executable: "./dist/win-unpacked/Element.exe"
|
|
||||||
name: Test ${{ matrix.name }}
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- run: echo "Tests successful"
|
||||||
|
|
||||||
- uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version-file: .node-version
|
|
||||||
cache: "yarn"
|
|
||||||
|
|
||||||
- name: Install Deps
|
|
||||||
run: "yarn install --frozen-lockfile"
|
|
||||||
|
|
||||||
- uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
name: ${{ matrix.artifact }}
|
|
||||||
path: dist
|
|
||||||
|
|
||||||
- name: Prepare for tests
|
|
||||||
run: ${{ matrix.prepare_cmd }}
|
|
||||||
if: matrix.prepare_cmd
|
|
||||||
|
|
||||||
# We previously disabled the `EnableNodeCliInspectArguments` fuse, but Playwright requires
|
|
||||||
# it to be enabled to test Electron apps, so turn it back on.
|
|
||||||
- name: Set EnableNodeCliInspectArguments fuse enabled
|
|
||||||
run: $RUN_AS npx @electron/fuses write --app ${{ matrix.executable }} EnableNodeCliInspectArguments=on
|
|
||||||
shell: bash
|
|
||||||
env:
|
|
||||||
# We need sudo on Linux as it is installed in /opt/
|
|
||||||
RUN_AS: ${{ runner.os == 'Linux' && 'sudo' || '' }}
|
|
||||||
|
|
||||||
- name: Run tests
|
|
||||||
uses: coactions/setup-xvfb@6b00cf1889f4e1d5a48635647013c0508128ee1a
|
|
||||||
timeout-minutes: 10
|
|
||||||
with:
|
|
||||||
run: "yarn test ${{ runner.os != 'Linux' && '--ignore-snapshots' || '' }}"
|
|
||||||
env:
|
|
||||||
ELEMENT_DESKTOP_EXECUTABLE: ${{ matrix.executable }}
|
|
||||||
|
|
||||||
- name: Upload HTML report
|
|
||||||
if: always()
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: ${{ matrix.artifact }}-test
|
|
||||||
path: playwright/html-report
|
|
||||||
retention-days: 14
|
|
||||||
|
11
.github/workflows/build_linux.yaml
vendored
11
.github/workflows/build_linux.yaml
vendored
@ -183,3 +183,14 @@ jobs:
|
|||||||
test -f ./dist/element-desktop*.tar.gz
|
test -f ./dist/element-desktop*.tar.gz
|
||||||
env:
|
env:
|
||||||
ARCH: ${{ inputs.arch }}
|
ARCH: ${{ inputs.arch }}
|
||||||
|
|
||||||
|
test:
|
||||||
|
needs: build
|
||||||
|
uses: ./.github/workflows/build_test.yaml
|
||||||
|
with:
|
||||||
|
artifact: linux-${{ inputs.arch }}-sqlcipher-${{ inputs.sqlcipher }}
|
||||||
|
runs-on: ${{ inputs.arch == 'arm64' && 'ubuntu-22.04-arm' || 'ubuntu-22.04' }}
|
||||||
|
executable: /opt/Element/element-desktop
|
||||||
|
prepare_cmd: |
|
||||||
|
sudo apt-get -qq update
|
||||||
|
sudo apt install ./dist/*.deb
|
||||||
|
14
.github/workflows/build_macos.yaml
vendored
14
.github/workflows/build_macos.yaml
vendored
@ -145,3 +145,17 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
test -f ./dist/Element*.dmg
|
test -f ./dist/Element*.dmg
|
||||||
test -f ./dist/Element*-mac.zip
|
test -f ./dist/Element*-mac.zip
|
||||||
|
|
||||||
|
test:
|
||||||
|
needs: build
|
||||||
|
uses: ./.github/workflows/build_test.yaml
|
||||||
|
with:
|
||||||
|
artifact: macos
|
||||||
|
runs-on: macos-14
|
||||||
|
executable: /Users/runner/Applications/Element.app/Contents/MacOS/Element
|
||||||
|
# We need to mount the DMG and copy the app to the Applications folder as a mounted DMG is
|
||||||
|
# read-only and thus would not allow us to override the fuses as is required for Playwright.
|
||||||
|
prepare_cmd: |
|
||||||
|
hdiutil attach ./dist/*.dmg -mountpoint /Volumes/Element &&
|
||||||
|
rsync -a /Volumes/Element/Element.app ~/Applications/ &&
|
||||||
|
hdiutil detach /Volumes/Element
|
||||||
|
68
.github/workflows/build_test.yaml
vendored
Normal file
68
.github/workflows/build_test.yaml
vendored
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
# This action helps run Playwright tests within one of the build_* stages.
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
runs-on:
|
||||||
|
type: string
|
||||||
|
required: true
|
||||||
|
description: "The runner image to use"
|
||||||
|
artifact:
|
||||||
|
type: string
|
||||||
|
required: true
|
||||||
|
description: "The name of the artifact to download"
|
||||||
|
executable:
|
||||||
|
type: string
|
||||||
|
required: true
|
||||||
|
description: "Path to the executable to test"
|
||||||
|
prepare_cmd:
|
||||||
|
type: string
|
||||||
|
required: false
|
||||||
|
description: "Command to run to prepare the executable or environment for testing"
|
||||||
|
permissions: {}
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: ${{ inputs.runs-on }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version-file: .node-version
|
||||||
|
cache: "yarn"
|
||||||
|
|
||||||
|
- name: Install Deps
|
||||||
|
run: "yarn install --frozen-lockfile"
|
||||||
|
|
||||||
|
- uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: ${{ inputs.artifact }}
|
||||||
|
path: dist
|
||||||
|
|
||||||
|
- name: Prepare for tests
|
||||||
|
run: ${{ inputs.prepare_cmd }}
|
||||||
|
if: inputs.prepare_cmd
|
||||||
|
|
||||||
|
# We previously disabled the `EnableNodeCliInspectArguments` fuse, but Playwright requires
|
||||||
|
# it to be enabled to test Electron apps, so turn it back on.
|
||||||
|
- name: Set EnableNodeCliInspectArguments fuse enabled
|
||||||
|
run: $RUN_AS npx @electron/fuses write --app ${{ inputs.executable }} EnableNodeCliInspectArguments=on
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
# We need sudo on Linux as it is installed in /opt/
|
||||||
|
RUN_AS: ${{ runner.os == 'Linux' && 'sudo' || '' }}
|
||||||
|
|
||||||
|
- name: Run tests
|
||||||
|
uses: coactions/setup-xvfb@6b00cf1889f4e1d5a48635647013c0508128ee1a
|
||||||
|
timeout-minutes: 10
|
||||||
|
with:
|
||||||
|
run: "yarn test ${{ runner.os != 'Linux' && '--ignore-snapshots' || '' }}"
|
||||||
|
env:
|
||||||
|
ELEMENT_DESKTOP_EXECUTABLE: ${{ inputs.executable }}
|
||||||
|
|
||||||
|
- name: Upload HTML report
|
||||||
|
if: always()
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: ${{ inputs.artifact }}-test
|
||||||
|
path: playwright/html-report
|
||||||
|
retention-days: 14
|
10
.github/workflows/build_windows.yaml
vendored
10
.github/workflows/build_windows.yaml
vendored
@ -216,3 +216,13 @@ jobs:
|
|||||||
Test-Path './dist/squirrel-windows*/element-desktop-*-full.nupkg'
|
Test-Path './dist/squirrel-windows*/element-desktop-*-full.nupkg'
|
||||||
Test-Path './dist/squirrel-windows*/RELEASES'
|
Test-Path './dist/squirrel-windows*/RELEASES'
|
||||||
Test-Path './dist/Element*.msi'
|
Test-Path './dist/Element*.msi'
|
||||||
|
|
||||||
|
test:
|
||||||
|
needs: build
|
||||||
|
uses: ./.github/workflows/build_test.yaml
|
||||||
|
# We have no Windows ARM64 runners at this time
|
||||||
|
if: inputs.arch != 'arm64'
|
||||||
|
with:
|
||||||
|
artifact: win-${{ inputs.arch }}
|
||||||
|
runs-on: windows-2022
|
||||||
|
executable: ${{ inputs.arch == 'ia32' && './dist/win-ia32-unpacked/Element.exe' || './dist/win-unpacked/Element.exe' }}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user