GitHubAdvanced
একাধিক job, matrix ও deploy
Advanced workflow: matrix, cache, deploy — বাংলায়।
14টি অংশবাংলা ভাষায়
Matrix — একাধিক সংস্করণে পরীক্ষা
matrix উদাহরণyaml
yaml
jobs:
test:
strategy:
matrix:
node: [18, 20, 22]
os: [ubuntu-latest, windows-latest]
runs-on: ${ { matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${ { matrix.node }}
- run: npm ci
- run: npm testCache — দ্রুত সেটআপ
- uses: actions/cache@v4
with:
path: ~/.npm
key: npm-${ { hashFiles('package-lock.json') }}
- run: npm ciDeploy job — প্রোডাকশনে
deploy:
needs: test # test pass-এর পরে
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm run build
- run: npx prisma migrate deploy --prodSecrets workflow-তে
env:
DATABASE_URL: ${ { secrets.DATABASE_URL }}Repository Settings → Secrets and variables → Actions → New repository secret — দিয়ে secret যোগ করুন। workflow-এ সরাসরি লিখবেন না।
রানারের ধরণ
- GitHub-hosted — ubuntu/windows/macos, free minutes (public)
- Self-hosted — নিজের মেশিন/সার্ভার, নিজের নিয়ন্ত্রণ
Logs ও debugging
# workflow-তে verbose log
ACTIONS_STEP_DEBUG=trueসতর্কতা
Secrets কখনো run: echo ${{ secrets.X }} দিয়ে print করবেন না — সেগুলো log-এ দেখানো হয়। দরকার হলে আপনাকে প্রয়োজনীয় mask করা যায়।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।