Configure CI/CD pipelines for Evernote integrations.
Use when setting up automated testing, continuous integration,
or deployment pipelines for Evernote projects.
Trigger with phrases like "evernote ci", "evernote github actions",
"evernote pipeline", "automate evernote tests".
Configure continuous integration pipelines for Evernote integrations with mock-based unit tests, sandbox-based integration tests, credential management, and deployment workflows.
Prerequisites
Git repository with Evernote integration code
CI/CD platform (GitHub Actions, GitLab CI, etc.)
Test framework (Jest, Vitest, or Mocha)
Sandbox API credentials for integration tests
Instructions
Step 1: GitHub Actions Workflow
Create a workflow that runs unit tests on every PR and integration tests on merges to main. Store sandbox credentials as GitHub Actions secrets.
Write unit tests against the mock client (fast, no credentials needed). Write integration tests against the sandbox (slow, needs EVERNOTE_DEV_TOKEN). Tag integration tests so they can run separately.
Step 4: Secrets Management
Store EVERNOTE_CONSUMER_KEY, EVERNOTE_CONSUMER_SECRET, and EVERNOTE_DEV_TOKEN as repository secrets. Never log or echo secret values. Use environment-specific secret names for staging vs production.
For the full CI workflow, mock client, test examples, and deployment pipeline, see Implementation Guide.
Output
GitHub Actions workflow with unit and integration test stages
MockNoteStore class for deterministic unit testing
Integration test suite using sandbox credentials
Secrets management configuration for GitHub Actions
npm scripts: test, test:unit, test:integration
Error Handling
Error
Cause
Solution
Integration test auth failure
Expired sandbox token
Regenerate Developer Token in sandbox settings
Flaky integration tests
Rate limits in CI
Add delays between integration tests, reduce parallelism
Secret not available
Missing repository secret
Add secret in GitHub Settings > Secrets and variables
For deployment pipelines, see evernote-deploy-integration.
Examples
Unit test suite: Test NoteService.createNote() against MockNoteStore to verify ENML wrapping, title sanitization, and tag handling without any API calls.
Sandbox integration test: In CI, create a note in the sandbox, retrieve it by GUID, verify content matches, then delete it. Runs only on main branch merges.