docs: add video guide for Google Calendar OAuth setup #729
This file contains hidden or 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: 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 |