2022-08-25 10:06:31 +02:00
|
|
|
---
|
|
|
|
name: Run tests
|
|
|
|
|
|
|
|
on:
|
|
|
|
workflow_dispatch:
|
|
|
|
pull_request:
|
|
|
|
branches-ignore:
|
|
|
|
- 'l10n_master'
|
|
|
|
- 'cf-pages'
|
|
|
|
paths:
|
|
|
|
- 'apps/**'
|
|
|
|
- 'libs/**'
|
|
|
|
- '*'
|
|
|
|
- '!*.md'
|
|
|
|
- '!*.txt'
|
|
|
|
- '.github/workflows/test.yml'
|
|
|
|
|
|
|
|
defaults:
|
|
|
|
run:
|
|
|
|
shell: bash
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
test:
|
|
|
|
name: Run tests
|
|
|
|
runs-on: ubuntu-20.04
|
|
|
|
steps:
|
|
|
|
- name: Checkout repo
|
2023-05-09 18:38:11 +02:00
|
|
|
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
|
2022-08-25 10:06:31 +02:00
|
|
|
|
|
|
|
- name: Set up Node
|
2023-05-09 18:38:11 +02:00
|
|
|
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
|
2022-08-25 10:06:31 +02:00
|
|
|
with:
|
|
|
|
cache: 'npm'
|
|
|
|
cache-dependency-path: '**/package-lock.json'
|
2023-05-01 11:09:24 +02:00
|
|
|
node-version: '18'
|
2022-08-25 10:06:31 +02:00
|
|
|
|
|
|
|
- name: Print environment
|
|
|
|
run: |
|
|
|
|
node --version
|
|
|
|
npm --version
|
|
|
|
|
|
|
|
- name: Install Node dependencies
|
|
|
|
run: npm ci
|
|
|
|
|
2022-09-08 00:05:30 +02:00
|
|
|
# We use isolatedModules: true which disables typechecking in tests
|
|
|
|
# Tests in apps/ are typechecked when their app is built, so we just do it here for libs/
|
|
|
|
# See https://bitwarden.atlassian.net/browse/EC-497
|
|
|
|
- name: Run typechecking
|
2023-02-06 20:40:00 +01:00
|
|
|
run: npm run test:types
|
2022-09-08 00:05:30 +02:00
|
|
|
|
2022-08-25 10:06:31 +02:00
|
|
|
- name: Run tests
|
2023-01-11 15:01:02 +01:00
|
|
|
run: npm run test
|
|
|
|
|
|
|
|
- name: Report test results
|
2023-05-05 22:17:19 +02:00
|
|
|
uses: dorny/test-reporter@c9b3d0e2bd2a4e96aaf424dbaa31c46b42318226 # v1.6.0
|
2023-01-11 15:01:02 +01:00
|
|
|
if: always()
|
|
|
|
with:
|
|
|
|
name: Test Results
|
|
|
|
path: "junit.xml"
|
|
|
|
reporter: jest-junit
|
|
|
|
fail-on-error: true
|
2022-10-24 11:46:50 +02:00
|
|
|
|
|
|
|
rust:
|
|
|
|
name: rust - ${{ matrix.os }}
|
|
|
|
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
os:
|
|
|
|
- ubuntu-latest
|
|
|
|
- macos-latest
|
|
|
|
- windows-latest
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Install gnome-keyring
|
|
|
|
if: ${{ matrix.os=='ubuntu-latest' }}
|
2022-10-31 14:29:41 +01:00
|
|
|
run: |
|
|
|
|
sudo apt-get update
|
|
|
|
sudo apt-get install -y gnome-keyring dbus-x11
|
2022-10-24 11:46:50 +02:00
|
|
|
|
|
|
|
- name: Checkout repo
|
2023-05-09 18:38:11 +02:00
|
|
|
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
|
2022-10-24 11:46:50 +02:00
|
|
|
|
|
|
|
- name: Install rust
|
2023-05-09 11:44:05 +02:00
|
|
|
uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af # v1.0.7
|
2022-10-24 11:46:50 +02:00
|
|
|
with:
|
|
|
|
toolchain: stable
|
|
|
|
profile: minimal
|
|
|
|
override: true
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
working-directory: ./apps/desktop/desktop_native
|
|
|
|
run: cargo build
|
|
|
|
|
|
|
|
- name: Test Ubuntu
|
|
|
|
if: ${{ matrix.os=='ubuntu-latest' }}
|
|
|
|
working-directory: ./apps/desktop/desktop_native
|
|
|
|
run: |
|
|
|
|
eval "$(dbus-launch --sh-syntax)"
|
|
|
|
mkdir -p ~/.cache
|
|
|
|
mkdir -p ~/.local/share/keyrings
|
|
|
|
eval "$(printf '\n' | gnome-keyring-daemon --unlock)"
|
|
|
|
eval "$(printf '\n' | /usr/bin/gnome-keyring-daemon --start)"
|
|
|
|
cargo test -- --test-threads=1
|
|
|
|
|
|
|
|
- name: Test Windows / macOS
|
|
|
|
if: ${{ matrix.os!='ubuntu-latest' }}
|
|
|
|
working-directory: ./apps/desktop/desktop_native
|
2023-01-11 15:01:02 +01:00
|
|
|
run: cargo test -- --test-threads=1
|