evernote-ci-integration
Set up CI/CD pipelines to automate testing and deployment for Evernote projects.
Install
mkdir -p .claude/skills/evernote-ci-integration && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/6646" && unzip -o skill.zip -d .claude/skills/evernote-ci-integration && rm skill.zipInstalls to .claude/skills/evernote-ci-integration
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Configure CI/CD pipelines for Evernote integrations.Key capabilities
- →Create GitHub Actions workflows for CI
- →Develop mock Evernote clients for unit testing
- →Write unit tests against mock clients
- →Implement integration tests using Evernote sandbox credentials
- →Manage sandbox credentials as repository secrets
- →Configure npm scripts for testing
How it works
The skill outlines steps to set up CI pipelines for Evernote integrations, including creating GitHub Actions workflows, mocking the Evernote client for unit tests, and running integration tests against a sandbox.
Inputs & outputs
When to use evernote-ci-integration
- →Configure GitHub Actions for CI pipelines
- →Implement automated integration tests for Evernote API
- →Manage sandbox credentials securely
- →Automate deployment workflows
About this skill
Evernote CI Integration
Overview
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.
# .github/workflows/evernote-ci.yml
name: Evernote CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: '20' }
- run: npm ci
- run: npm test
- name: Integration tests
if: github.ref == 'refs/heads/main'
env:
EVERNOTE_DEV_TOKEN: ${{ secrets.EVERNOTE_SANDBOX_TOKEN }}
EVERNOTE_SANDBOX: 'true'
run: npm run test:integration
Step 2: Mock Evernote Client for Unit Tests
Create a mock NoteStore that returns predictable data without hitting the API. Mock createNote, getNote, findNotesMetadata, listNotebooks, and listTags.
class MockNoteStore {
constructor() {
this.notes = new Map();
this.notebooks = [{ guid: 'nb-1', name: 'Default', defaultNotebook: true }];
}
async createNote(note) {
const guid = `note-${Date.now()}`;
const created = { ...note, guid, created: Date.now(), updated: Date.now() };
this.notes.set(guid, created);
return created;
}
async getNote(guid, withContent) {
const note = this.notes.get(guid);
if (!note) throw { identifier: 'Note.guid', key: guid };
return withContent ? note : { ...note, content: undefined };
}
async listNotebooks() { return this.notebooks; }
}
Step 3: Unit and Integration Test Examples
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
MockNoteStoreclass 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 |
| Mock drift | Mock doesn't match real API behavior | Update mock when upgrading SDK version |
Resources
- GitHub Actions
- Jest Documentation
- Evernote Sandbox
- GitHub Encrypted Secrets
Next Steps
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.
When not to use it
- →When the project does not involve Evernote integrations
- →When a different CI/CD platform is used and GitHub Actions examples are not applicable
Prerequisites
Limitations
- →Requires a Git repository
- →Needs a CI/CD platform
- →Requires sandbox API credentials for integration tests
How it compares
This skill provides a structured approach to automating testing and deployment for Evernote integrations, unlike manual testing or ad-hoc CI configurations.
Compared to similar skills
evernote-ci-integration side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| evernote-ci-integration (this skill) | 1 | 25d | Review | Intermediate |
| e2e-testing-patterns | 8 | 2mo | No flags | Intermediate |
| testing-workflow | 16 | 9mo | Review | Intermediate |
| perf-lighthouse | 13 | 5mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by jeremylongshore
View all by jeremylongshore →You might also like
e2e-testing-patterns
wshobson
Master end-to-end testing with Playwright and Cypress to build reliable test suites that catch bugs, improve confidence, and enable fast deployment. Use when implementing E2E tests, debugging flaky tests, or establishing testing standards.
testing-workflow
amo-tech-ai
Comprehensive testing workflow for E2E, integration, and unit tests. Use when testing applications layer-by-layer, validating user journeys, or running test suites.
perf-lighthouse
tech-leads-club
Run Lighthouse audits locally via CLI or Node API, parse and interpret reports, set performance budgets. Use when measuring site performance, understanding Lighthouse scores, setting up budgets, or integrating audits into CI. Triggers on: lighthouse, run lighthouse, lighthouse score, performance audit, performance budget.
xcodebuildmcp
cameroncooke
Official skill for XcodeBuildMCP. Use when doing iOS/macOS/watchOS/tvOS/visionOS work (build, test, run, debug, log, UI automation).
verify
Use when you want to validate changes before committing, or when you need to check all React contribution requirements.
playwright-pro
alirezarezvani
Production-grade Playwright testing toolkit. Use when the user mentions Playwright tests, end-to-end testing, browser automation, fixing flaky tests, test migration, CI/CD testing, or test suites. Generate tests, fix flaky failures, migrate from Cypress/Selenium, sync with TestRail, run on BrowserStack. 55 templates, 3 agents, smart reporting.