Skip to content

feat: Allow enabling perf measures via flags #1656

feat: Allow enabling perf measures via flags

feat: Allow enabling perf measures via flags #1656

Workflow file for this run

name: Linux
# To debug a job, add the following step:
# - name: Debug with tmate
# uses: mxschmitt/action-tmate@v3
on:
push:
branches:
- master
tags:
- '**'
pull_request:
paths-ignore:
- '.github/workflows/macos.yaml'
env:
COZY_DESKTOP_DIR: "${{ github.workspace }}/cozy-desktop"
COZY_STACK_STORAGE: "${{ github.workspace }}/storage"
COZY_URL: "http://cozy.localhost:8080"
COZY_PASSPHRASE: "cozy"
GO111MODULE: "on"
NODE_ENV: "test"
COZY_DESKTOP_HEARTBEAT: "1000"
DISPLAY: ":99.0"
NODE_VERSION: "18.12.1"
GO_VERSION: "1.21"
COUCHDB_VERSION: "3.2.2"
COUCHDB_USER: "admin"
COUCHDB_PASSWORD: "password"
jobs:
cancel:
name: 'Cancel Previous Runs'
runs-on: ubuntu-20.04
timeout-minutes: 3
steps:
- uses: styfle/cancel-workflow-action@5df4e62aed82ea1f787d2a02ab3dbfcaa49ffdd1
unit:
needs: cancel
runs-on: ubuntu-20.04
name: Lint & Unit tests
steps:
- uses: actions/checkout@v3
- name: Cache node modules
id: cache-node-modules
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
path: |
${{ github.workspace }}/node_modules
~/.cache/electron
~/.cache/electron-builder
key: ${{ runner.os }}-v${{ env.NODE_VERSION }}-${{ env.cache-name }}-${{ hashFiles('yarn.lock') }}
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Setup golang
uses: actions/setup-go@v3
with:
go-version: ${{ env.GO_VERSION }}
- name: Setup python
run: pip install setuptools
- name: Setup CouchDB
id: setup-couchdb
uses: 'taratatach/couchdb-action@v4.6-dev'
with:
couchdb version: ${{ env.COUCHDB_VERSION }}
couchdb user: ${{ env.COUCHDB_USER }}
couchdb password: ${{ env.COUCHDB_PASSWORD }}
- name: Setup cozy-stack
uses: ./.github/actions/setup-cozy-stack
with:
couchdb-url: ${{ steps.setup-couchdb.outputs.couchdb-url }}
- name: Setup local env
run: |
mkdir -p "$COZY_DESKTOP_DIR"
echo "NODE_ENV=test" > "${{ github.workspace }}/.env.test"
- name: Install dependencies
if: ${{ steps.cache-node-modules.outputs.cache-hit != 'true' }}
run: yarn install
- name: Rebuild native plugins
run: yarn install:electron
- name: Start Xvfb
run: sudo Xvfb :99 -ac -screen 0 1024x768x8 &
- name: Build elm
run: yarn build:elm
- name: Lint
run: yarn lint
- name: Elm tests
run: yarn test:elm
- name: World tests
run: yarn test:world --forbid-only
- name: Unit tests
run: yarn test:unit --forbid-only
integration:
needs: cancel
runs-on: ubuntu-20.04
name: Integration tests
steps:
- uses: actions/checkout@v3
- name: Cache node modules
id: cache-node-modules
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
path: |
${{ github.workspace }}/node_modules
~/.cache/electron
~/.cache/electron-builder
key: ${{ runner.os }}-v${{ env.NODE_VERSION }}-${{ env.cache-name }}-${{ hashFiles('yarn.lock') }}
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Setup golang
uses: actions/setup-go@v3
with:
go-version: ${{ env.GO_VERSION }}
- name: Setup python
run: pip install setuptools
- name: Setup CouchDB
id: setup-couchdb
uses: 'taratatach/couchdb-action@v4.6-dev'
with:
couchdb version: ${{ env.COUCHDB_VERSION }}
couchdb user: ${{ env.COUCHDB_USER }}
couchdb password: ${{ env.COUCHDB_PASSWORD }}
- name: Setup cozy-stack
uses: ./.github/actions/setup-cozy-stack
with:
couchdb-url: ${{ steps.setup-couchdb.outputs.couchdb-url }}
- name: Setup local env
run: |
mkdir -p "$COZY_DESKTOP_DIR"
echo "NODE_ENV=test" > "${{ github.workspace }}/.env.test"
- name: Install dependencies
if: ${{ steps.cache-node-modules.outputs.cache-hit != 'true' }}
run: yarn install
- name: Rebuild native plugins
run: yarn install:electron
- name: Start Xvfb
run: sudo Xvfb :99 -ac -screen 0 1024x768x8 &
- name: Integration tests
run: yarn test:integration --forbid-only
scenarios:
needs: cancel
runs-on: ubuntu-20.04
name: Scenarios
strategy:
matrix:
stopped_client: ['', 'STOPPED']
fail-fast: false
steps:
- uses: actions/checkout@v3
- name: Cache node modules
id: cache-node-modules
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
path: |
${{ github.workspace }}/node_modules
~/.cache/electron
~/.cache/electron-builder
key: ${{ runner.os }}-v${{ env.NODE_VERSION }}-${{ env.cache-name }}-${{ hashFiles('yarn.lock') }}
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Setup golang
uses: actions/setup-go@v3
with:
go-version: ${{ env.GO_VERSION }}
- name: Setup python
run: pip install setuptools
- name: Setup CouchDB
id: setup-couchdb
uses: 'taratatach/couchdb-action@v4.6-dev'
with:
couchdb version: ${{ env.COUCHDB_VERSION }}
couchdb user: ${{ env.COUCHDB_USER }}
couchdb password: ${{ env.COUCHDB_PASSWORD }}
- name: Setup cozy-stack
uses: ./.github/actions/setup-cozy-stack
with:
couchdb-url: ${{ steps.setup-couchdb.outputs.couchdb-url }}
- name: Setup local env
run: |
mkdir -p "$COZY_DESKTOP_DIR"
echo "NODE_ENV=test" > "${{ github.workspace }}/.env.test"
- name: Install dependencies
if: ${{ steps.cache-node-modules.outputs.cache-hit != 'true' }}
run: yarn install
- name: Rebuild native plugins
run: yarn install:electron
- name: Start Xvfb
run: sudo Xvfb :99 -ac -screen 0 1024x768x8 &
- name: Scenarios
env:
STOPPED_CLIENT: ${{ matrix.stopped_client == 'STOPPED' }}
run: yarn test:scenarios --forbid-only
build:
needs: cancel
runs-on: ubuntu-20.04
name: Build packages
steps:
- uses: actions/checkout@v3
- name: Cache node modules
id: cache-node-modules
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
path: |
${{ github.workspace }}/node_modules
~/.cache/electron
~/.cache/electron-builder
key: ${{ runner.os }}-v${{ env.NODE_VERSION }}-${{ env.cache-name }}-${{ hashFiles('yarn.lock') }}
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Setup python
run: pip install setuptools
- name: Install dependencies
if: ${{ steps.cache-node-modules.outputs.cache-hit != 'true' }}
run: yarn install:all
- name: Build assets
run: yarn build
- name: Build packages
uses: ./.github/actions/build-and-publish
with:
gh-token: "${{ secrets.GITHUB_TOKEN }}"
- name: Save artifacts
if: ${{ github.event_name == 'pull_request' }}
uses: actions/upload-artifact@v3
with:
name: Binaries
path: |
${{ github.workspace }}/dist/latest-linux.yml
${{ github.workspace }}/dist/Cozy[- ]Drive[- ]*.AppImage
retention-days: 5