-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
57 changed files
with
1,319 additions
and
265 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
const fs = require('fs'); | ||
const projectRootPath = __dirname; | ||
const AddonConfigurationRegistry = require('@plone/registry/src/addon-registry'); | ||
|
||
let coreLocation; | ||
if (fs.existsSync(`${projectRootPath}/core`)) | ||
coreLocation = `${projectRootPath}/core`; | ||
else if (fs.existsSync(`${projectRootPath}/../../core`)) | ||
coreLocation = `${projectRootPath}/../../core`; | ||
|
||
const registry = new AddonConfigurationRegistry( | ||
`${coreLocation}/packages/volto`, | ||
); | ||
|
||
// Extends ESlint configuration for adding the aliases to `src` directories in Volto addons | ||
const addonAliases = Object.keys(registry.packages).map((o) => [ | ||
o, | ||
registry.packages[o].modulePath, | ||
]); | ||
|
||
module.exports = { | ||
extends: `${coreLocation}/packages/volto/.eslintrc`, | ||
rules: { | ||
'import/no-unresolved': 1, | ||
}, | ||
settings: { | ||
'import/resolver': { | ||
alias: { | ||
map: [ | ||
['@plone/volto', `${coreLocation}/packages/volto/src`], | ||
['@plone/volto-slate', `${coreLocation}/packages/volto-slate/src`], | ||
['@plone/registry', `${coreLocation}/packages/registry/src`], | ||
[ | ||
'volto-home-assistant', | ||
'./packages/volto-home-assistant/src', | ||
], | ||
...addonAliases, | ||
], | ||
extensions: ['.js', '.jsx', '.ts', '.tsx', '.json'], | ||
}, | ||
}, | ||
}, | ||
}; |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
name: Acceptance tests | ||
on: | ||
push: | ||
paths: | ||
- "*.js" | ||
- "*.json" | ||
- "*.yaml" | ||
- "cypress/**" | ||
- "packages/**" | ||
- ".github/workflows/acceptance.yml" | ||
|
||
env: | ||
NODE_VERSION: 20.x | ||
CYPRESS_RETRIES: 2 | ||
|
||
jobs: | ||
|
||
acceptance: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Use Node.js ${{ env.NODE_VERSION }} | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: ${{ env.NODE_VERSION }} | ||
|
||
- name: Enable corepack | ||
run: corepack enable | ||
|
||
- name: Get pnpm store directory | ||
shell: bash | ||
run: | | ||
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | ||
- uses: actions/cache@v4 | ||
name: Setup pnpm cache | ||
with: | ||
path: ${{ env.STORE_PATH }} | ||
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | ||
restore-keys: | | ||
${{ runner.os }}-pnpm-store- | ||
- name: Cache Cypress Binary | ||
id: cache-cypress-binary | ||
uses: actions/cache@v4 | ||
with: | ||
path: ~/.cache/Cypress | ||
key: binary-${{ env.NODE_VERSION }}-${{ hashFiles('pnpm-lock.yaml') }} | ||
|
||
- name: Install dependencies | ||
run: make install | ||
|
||
- name: Install Cypress if not in cache | ||
if: steps.cache-cypress-binary.outputs.cache-hit != 'true' | ||
working-directory: core/packages/volto | ||
run: make cypress-install | ||
|
||
- uses: JarvusInnovations/background-action@v1 | ||
name: Start Servers | ||
with: | ||
run: | | ||
make ci-acceptance-backend-start & | ||
make acceptance-frontend-prod-start & | ||
# your step-level and job-level environment variables are available to your commands as-is | ||
# npm install will count towards the wait-for timeout | ||
# whenever possible, move unrelated scripts to a different step | ||
# to background multiple processes: add & to the end of the command | ||
|
||
wait-on: | | ||
http-get://localhost:55001/plone | ||
http://localhost:3000 | ||
# IMPORTANT: to use environment variables in wait-on, you must use this form: ${{ env.VAR }} | ||
# See wait-on section below for all resource types and prefixes | ||
|
||
tail: true # true = stderr,stdout | ||
# This will allow you to monitor the progress live | ||
|
||
log-output-resume: stderr | ||
# Eliminates previosuly output stderr log entries from post-run output | ||
|
||
wait-for: 10m | ||
|
||
log-output: stderr,stdout # same as true | ||
|
||
log-output-if: failure | ||
|
||
- run: make ci-acceptance-test | ||
|
||
# Upload Cypress screenshots | ||
- uses: actions/upload-artifact@v4 | ||
if: failure() | ||
with: | ||
name: cypress-screenshots-acceptance | ||
path: acceptance/cypress/screenshots | ||
|
||
# Upload Cypress videos | ||
- uses: actions/upload-artifact@v4 | ||
if: failure() | ||
with: | ||
name: cypress-videos-acceptance | ||
path: acceptance/cypress/videos |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
name: Changelog check | ||
on: | ||
pull_request: | ||
types: [assigned, opened, synchronize, reopened, labeled, unlabeled] | ||
branches: | ||
- main | ||
|
||
env: | ||
NODE_VERSION: 20.x | ||
ADDON_NAME: volto-home-assistant | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
# Fetch all history | ||
fetch-depth: '0' | ||
|
||
- name: Install pipx | ||
run: pip install towncrier | ||
|
||
- name: Use Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: ${{ env.NODE_VERSION }} | ||
|
||
- name: Enable corepack | ||
run: corepack enable | ||
|
||
- name: Get pnpm store directory | ||
shell: bash | ||
run: | | ||
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | ||
- uses: actions/cache@v4 | ||
name: Setup pnpm cache | ||
with: | ||
path: ${{ env.STORE_PATH }} | ||
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | ||
restore-keys: | | ||
${{ runner.os }}-pnpm-store- | ||
- name: Install dependencies | ||
run: | | ||
make install | ||
- name: Check for presence of a Change Log fragment (only pull requests) | ||
run: | | ||
# Fetch the pull request' base branch so towncrier will be able to | ||
# compare the current branch with the base branch. | ||
# Source: https://github.com/actions/checkout/#fetch-all-branches. | ||
git fetch --no-tags origin ${BASE_BRANCH} | ||
towncrier check --dir packages/${ADDON_NAME} | ||
env: | ||
BASE_BRANCH: ${{ github.base_ref }} | ||
if: github.event_name == 'pull_request' |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
name: Code analysis checks | ||
on: | ||
push: | ||
paths: | ||
- "*.js" | ||
- "*.json" | ||
- "*.yaml" | ||
- "packages/**" | ||
- ".github/workflows/code.yml" | ||
|
||
env: | ||
NODE_VERSION: 20.x | ||
|
||
jobs: | ||
codeanalysis: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Main checkout | ||
uses: actions/checkout@v4 | ||
|
||
- name: Use Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: ${{ env.NODE_VERSION }} | ||
|
||
- name: Enable corepack | ||
run: corepack enable | ||
|
||
- name: Get pnpm store directory | ||
shell: bash | ||
run: | | ||
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | ||
- uses: actions/cache@v4 | ||
name: Setup pnpm cache | ||
with: | ||
path: ${{ env.STORE_PATH }} | ||
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | ||
restore-keys: | | ||
${{ runner.os }}-pnpm-store- | ||
- name: Install dependencies | ||
run: make install | ||
|
||
- name: Linting | ||
run: make lint |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
name: i18n | ||
on: | ||
push: | ||
paths: | ||
- "*.js" | ||
- "*.json" | ||
- "*.yaml" | ||
- "packages/**" | ||
- ".github/workflows/i18n.yml" | ||
|
||
env: | ||
NODE_VERSION: 20.x | ||
|
||
jobs: | ||
unit: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Main checkout | ||
uses: actions/checkout@v4 | ||
|
||
- name: Use Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: ${{ env.NODE_VERSION }} | ||
|
||
- name: Enable corepack | ||
run: corepack enable | ||
|
||
- name: Get pnpm store directory | ||
shell: bash | ||
run: | | ||
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | ||
- uses: actions/cache@v4 | ||
name: Setup pnpm cache | ||
with: | ||
path: ${{ env.STORE_PATH }} | ||
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | ||
restore-keys: | | ||
${{ runner.os }}-pnpm-store- | ||
- name: Install dependencies | ||
run: make install | ||
|
||
- name: test i18n command | ||
run: make i18n |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
name: Storybook | ||
on: | ||
push: | ||
paths: | ||
- "*.js" | ||
- "*.json" | ||
- "*.yaml" | ||
- "packages/**" | ||
- ".github/workflows/storybook.yml" | ||
|
||
env: | ||
NODE_VERSION: 20.x | ||
|
||
permissions: | ||
contents: write | ||
|
||
jobs: | ||
build-and-deploy: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
|
||
- name: Use Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: ${{ env.NODE_VERSION }} | ||
|
||
- name: Enable corepack | ||
run: corepack enable | ||
|
||
- name: Get pnpm store directory | ||
shell: bash | ||
run: | | ||
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | ||
- uses: actions/cache@v4 | ||
name: Setup pnpm cache | ||
with: | ||
path: ${{ env.STORE_PATH }} | ||
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | ||
restore-keys: | | ||
${{ runner.os }}-pnpm-store- | ||
- name: Install dependencies | ||
run: make install | ||
|
||
- name: Generate Storybook | ||
run: | | ||
make storybook-build | ||
- name: Deploy to GitHub pages | ||
uses: JamesIves/github-pages-deploy-action@v4 | ||
if: ${{ github.ref == 'refs/heads/main' }} | ||
with: | ||
branch: gh-pages | ||
folder: .storybook-build |
Oops, something went wrong.