From flexport-pack
Configures GitHub Actions CI/CD for Flexport API integrations: unit tests on PRs, sandbox integration tests on merge, API contract validation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/flexport-pack:flexport-ci-integrationThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Set up CI/CD for Flexport integrations: unit tests with mocked responses on every PR, integration tests against sandbox on merge, and API contract validation.
Set up CI/CD for Flexport integrations: unit tests with mocked responses on every PR, integration tests against sandbox on merge, and API contract validation.
# .github/workflows/flexport-ci.yml
name: Flexport CI
on:
pull_request:
paths: ['src/flexport/**', 'tests/**']
push:
branches: [main]
jobs:
unit-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: '20' }
- run: npm ci
- run: npm test -- --reporter=verbose
integration-tests:
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
environment: staging
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: '20' }
- run: npm ci
- run: npm run test:integration
env:
FLEXPORT_API_KEY: ${{ secrets.FLEXPORT_API_KEY_STAGING }}
FLEXPORT_LIVE: '1'
api-contract:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check API contract
run: |
curl -sf https://logistics-api.flexport.com/logistics/api/2024-04/documentation/raw \
-o openapi-latest.json
npx @openapitools/openapi-diff openapi-baseline.json openapi-latest.json \
--fail-on-breaking || echo "::warning::API contract changes detected"
// tests/integration.test.ts
const isLive = process.env.FLEXPORT_API_KEY && process.env.FLEXPORT_LIVE;
describe.skipIf(!isLive)('Flexport Live API', () => {
const headers = {
'Authorization': `Bearer ${process.env.FLEXPORT_API_KEY}`,
'Flexport-Version': '2',
};
it('lists shipments successfully', async () => {
const res = await fetch('https://api.flexport.com/shipments?per=1', { headers });
expect(res.status).toBe(200);
const body = await res.json();
expect(body.data).toHaveProperty('total_count');
});
});
For deployment strategies, see flexport-deploy-integration.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin flexport-packSets up local dev environment for Flexport API with typed TypeScript client, mock shipment data, and tests for fast iteration on logistics integrations.
Sets up GitHub Actions CI/CD for Apollo.io integrations: MSW unit tests, sandbox staging, main-branch live API tests, secret scanning.
Sets up GitHub Actions CI/CD workflows for Instantly.ai API integrations, with mock server unit tests, type validation, linting, and live read-only integration tests.