ci: Fix dependencies installation with Python 3.12 #1567
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Linux | |
# To debug a job, add the following step: | |
# - name: Debug with tmate | |
# uses: mxschmitt/action-tmate@v3 | |
on: | |
push: | |
branches: | |
- master | |
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.19" | |
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 |