Skip to content

docs: add property types reference documentation (#1259) #725

docs: add property types reference documentation (#1259)

docs: add property types reference documentation (#1259) #725

Workflow file for this run

name: Test Suite
on:
push:
branches: [ main, develop, v3-maintenance ]
pull_request:
branches: [ main, develop, v3-maintenance ]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci --prefer-offline --no-audit
timeout-minutes: 5
- name: Check i18n manifest is up-to-date
run: |
echo "🔍 Checking if i18n manifest and state files are up-to-date..."
npm run i18n:sync
if [[ -n "$(git status --porcelain)" ]]; then
echo "❌ Error: i18n manifest or state files are out of date."
echo "📝 Files that need to be committed:"
git status --porcelain
echo ""
echo "🔧 Please run 'npm run i18n:sync' locally and commit the changes:"
echo " npm run i18n:sync"
echo " git add i18n.manifest.json i18n.state.json"
echo " git commit -m 'chore: update i18n manifest and state files'"
echo ""
echo "📊 Current diff:"
git diff --name-only
if git diff --quiet i18n.manifest.json; then
echo "ℹ️ No manifest changes"
else
echo "📄 Manifest changes:"
git diff i18n.manifest.json | head -20
fi
if git diff --quiet i18n.state.json; then
echo "ℹ️ No state changes"
else
echo "📄 State changes:"
git diff i18n.state.json | head -20
fi
exit 1
else
echo "✅ i18n files are up-to-date."
fi
timeout-minutes: 3
- name: Debug environment
run: |
echo "Node version: $(node --version)"
echo "NPM version: $(npm --version)"
echo "Timezone: $(date)"
echo "Jest version: $(npx jest --version)"
- name: Run linter
run: npm run lint || echo "Linting completed with warnings"
timeout-minutes: 10
- name: Generate release notes import
run: node generate-release-notes-import.mjs
timeout-minutes: 1
- name: Run type check
run: npm run typecheck
timeout-minutes: 5
- name: Run unit tests with coverage
run: npm run test:ci -- --verbose
timeout-minutes: 15
- name: Run integration tests
run: npm run test:integration
timeout-minutes: 10
- name: Upload coverage reports
uses: codecov/codecov-action@v3
with:
file: ./coverage/lcov.info
fail_ci_if_error: false
- name: Performance benchmarks
run: npm run test:performance
timeout-minutes: 10
if: matrix.node-version == '20' # Only run on latest Node
- name: Archive test results
uses: actions/upload-artifact@v4
if: failure()
with:
name: test-results-${{ matrix.node-version }}
path: |
coverage/
test-results/
build-test:
runs-on: ubuntu-latest
needs: test
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci --prefer-offline --no-audit
timeout-minutes: 5
- name: Build plugin
env:
GOOGLE_OAUTH_CLIENT_ID: ${{ secrets.GOOGLE_OAUTH_CLIENT_ID }}
MICROSOFT_OAUTH_CLIENT_ID: ${{ secrets.MICROSOFT_OAUTH_CLIENT_ID }}
run: |
cat <<EOF > .env
GOOGLE_OAUTH_CLIENT_ID=${GOOGLE_OAUTH_CLIENT_ID}
MICROSOFT_OAUTH_CLIENT_ID=${MICROSOFT_OAUTH_CLIENT_ID}
EOF
npm run build
timeout-minutes: 10
- name: Test built plugin
run: npm run test:build
timeout-minutes: 5
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: plugin-build
path: |
main.js
manifest.json
styles.css