EV

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.zip

Installs 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.
52 charsno explicit “when” trigger
Intermediate

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

You give it
Evernote integration code, test files, CI/CD configuration
You get back
Automated test results, secure credential management, and a configured CI pipeline

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
  • 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

ErrorCauseSolution
Integration test auth failureExpired sandbox tokenRegenerate Developer Token in sandbox settings
Flaky integration testsRate limits in CIAdd delays between integration tests, reduce parallelism
Secret not availableMissing repository secretAdd secret in GitHub Settings > Secrets and variables
Mock driftMock doesn't match real API behaviorUpdate mock when upgrading SDK version

Resources

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

Git repository with Evernote integration codeCI/CD platformTest framework (Jest, Vitest, or Mocha)Sandbox API credentials for integration tests

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.

SkillInstallsUpdatedSafetyDifficulty
evernote-ci-integration (this skill)125dReviewIntermediate
e2e-testing-patterns82moNo flagsIntermediate
testing-workflow169moReviewIntermediate
perf-lighthouse135moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

More by jeremylongshore

View all by jeremylongshore

analyzing-logs

jeremylongshore

Analyze application logs to detect performance issues, identify error patterns, and improve stability by extracting key insights.

14123

ollama-setup

jeremylongshore

Configure auto-configure Ollama when user needs local LLM deployment, free AI alternatives, or wants to eliminate hosted API costs. Trigger phrases: "install ollama", "local AI", "free LLM", "self-hosted AI", "replace OpenAI", "no API costs". Use when appropriate context detected. Trigger with relevant phrases based on skill purpose.

1167

backtesting-trading-strategies

jeremylongshore

Backtest crypto and traditional trading strategies against historical data. Calculates performance metrics (Sharpe, Sortino, max drawdown), generates equity curves, and optimizes strategy parameters. Use when user wants to test a trading strategy, validate signals, or compare approaches. Trigger with phrases like "backtest strategy", "test trading strategy", "historical performance", "simulate trades", "optimize parameters", or "validate signals".

1071

generating-database-seed-data

jeremylongshore

Process this skill enables AI assistant to generate realistic test data and database seed scripts for development and testing environments. it uses faker libraries to create realistic data, maintains relational integrity, and allows configurable data volumes. u... Use when working with databases or data models. Trigger with phrases like 'database', 'query', or 'schema'.

1033

cursor-codebase-indexing

jeremylongshore

Execute set up and optimize Cursor codebase indexing. Triggers on "cursor index setup", "codebase indexing", "index codebase", "cursor semantic search". Use when working with cursor codebase indexing functionality. Trigger with phrases like "cursor codebase indexing", "cursor indexing", "cursor".

885

testing-mobile-apps

jeremylongshore

Execute mobile app testing on iOS and Android devices/simulators. Use when performing specialized testing. Trigger with phrases like "test mobile app", "run iOS tests", or "validate Android functionality".

810

You might also like

Search skills

Search the agent skills registry