From alchemy-pack
Configure CI/CD pipeline for Alchemy-powered Web3 applications. Use when setting up automated testing with Hardhat forks, smart contract verification, or testnet deployment pipelines. Trigger: "alchemy CI", "alchemy GitHub Actions", "web3 CI/CD pipeline".
npx claudepluginhub flight505/skill-forge --plugin alchemy-packThis skill is limited to using the following tools:
CI/CD pipeline for Alchemy-powered dApps with Hardhat mainnet fork testing, Sepolia deployment, and contract verification.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
CI/CD pipeline for Alchemy-powered dApps with Hardhat mainnet fork testing, Sepolia deployment, and contract verification.
# .github/workflows/web3-ci.yml
name: Web3 CI
on:
push:
branches: [main, develop]
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 run lint
- run: npm run typecheck
- name: Run Hardhat tests with Alchemy fork
env:
ALCHEMY_API_KEY: ${{ secrets.ALCHEMY_API_KEY }}
run: npx hardhat test
- name: Check API key not in build
run: |
npm run build
if grep -r "${{ secrets.ALCHEMY_API_KEY }}" dist/ 2>/dev/null; then
echo "FAIL: API key found in build output!"
exit 1
fi
deploy-testnet:
needs: test
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: '20' }
- run: npm ci
- name: Deploy to Sepolia
env:
ALCHEMY_API_KEY: ${{ secrets.ALCHEMY_API_KEY }}
DEPLOYER_PRIVATE_KEY: ${{ secrets.DEPLOYER_PRIVATE_KEY }}
run: npx hardhat run scripts/deploy.ts --network sepolia
// hardhat.config.ts — CI-optimized
const config = {
solidity: '0.8.24',
networks: {
hardhat: {
forking: {
url: `https://eth-mainnet.g.alchemy.com/v2/${process.env.ALCHEMY_API_KEY}`,
blockNumber: 19000000, // Pinned for reproducible CI
enabled: !!process.env.ALCHEMY_API_KEY,
},
},
},
mocha: {
timeout: 60000, // Fork tests are slower
},
};
For deployment procedures, see alchemy-deploy-integration.