slogan3

Ontwerp een GitHub Actions Workflow voor Geautomatiseerde Integratie van Externe API's

description

Met deze prompt kun je een geavanceerde GitHub Actions workflow ontwerpen die externe API's integreert voor dynamische en contextuele aanpassingen binnen je CI/CD pipeline. Dit verhoogt de flexibiliteit en automatisering, vermindert handmatige interventies en maakt je deploymentprocessen adaptiever dan traditionele workflows.

prompt

Help me een GitHub Actions workflow te ontwerpen die externe API's integreert voor dynamische gegevensverwerking binnen mijn CI/CD pipeline. Projecttype: <voer je projecttype in, bijvoorbeeld Node.js, Python>. API's om te integreren: ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Hier is een aangepaste GitHub Actions workflow die de Slack API en AWS Parameter Store integreert om dynamisch gegevens te verwerken en notificaties te versturen bij falende tests: ```yaml name: CI on: push: branches: - main - master jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Node.js uses: actions/setup-node@v2 with: node-version: '14' # of een andere gewenste versie - name: Cache node modules uses: actions/cache@v2 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- - name: Install dependencies run: npm ci - name: Run tests run: npm test - name: Fetch Slack Webhook URL from AWS Parameter Store id: get-slack-url uses: aws-actions/configure-aws-credentials@v1 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: jouw-aws-regio - name: Retrieve Slack Webhook URL run: | SLACK_WEBHOOK_URL=$(aws ssm get-parameter --name "/slack/webhook_url" --with-decryption --query "Parameter.Value" --output text) echo "SLACK_WEBHOOK_URL=$SLACK_WEBHOOK_URL" >> $GITHUB_OUTPUT notify: needs: build if: failure() # alleen uitvoeren bij test falen runs-on: ubuntu-latest steps: - name: Fetch Slack Webhook URL id: slack run: echo "SLACK_WEBHOOK_URL=${{ needs.get-slack-url.outputs.SLACK_WEBHOOK_URL }}" >> $GITHUB_OUTPUT - name: Send Slack notification env: SLACK_WEBHOOK_URL: ${{ steps.slack.outputs.SLACK_WEBHOOK_URL }} run: | curl -X POST -H 'Content-type: application/json' --data '{ "text": "🚨 Tests zijn mislukt in commit $GITHUB_SHA. Bekijk de details in de CI logs." }' $SLACK_WEBHOOK_URL ``` **Uitleg:** - De workflow voert eerst de build en tests uit. - Na de tests wordt de Slack Webhook URL dynamisch opgehaald uit AWS Parameter Store met behulp van de AWS CLI. - Bij een testfout wordt een notificatie naar Slack gestuurd met behulp van de opgehaalde webhook URL. - Zorg dat je de AWS-credentials (`AWS_ACCESS_KEY_ID` en `AWS_SECRET_ACCESS_KEY`) toevoegt aan je repository secrets. - Plaats de Slack Webhook URL in AWS Parameter Store onder de naam `/slack/webhook_url`, versleuteld. Wil je nog verdere aanpassingen of uitbreidingen?
provider: deepseek
model: deepseek-chat
Hier is een aangepaste GitHub Actions workflow voor je Node.js project die Slack notificaties verstuurt bij falende tests en gebruikmaakt van AWS Parameter Store voor geheimenbeheer: ```yaml name: CI on: [push] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Gebruik Node.js uses: actions/setup-node@v2 with: node-version: '18' cache: 'npm' - name: Installeer dependencies run: npm ci - name: Build run: npm run build - name: Voer tests uit id: tests run: npm test continue-on-error: true - name: Haal Slack Webhook URL op van AWS Parameter Store if: steps.tests.outcome == 'failure' uses: aws-actions/aws-ssm-get-parameters@v1 with: names: | /my-app/slack-webhook-url with-decryption: true env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_REGION: eu-west-1 - name: Verstuur Slack notificatie bij gefaalde tests if: steps.tests.outcome == 'failure' uses: slackapi/slack-github-action@v1.23.0 with: payload: | { "text": "❌ Tests gefaald in ${{ github.repository }}", "blocks": [ { "type": "section", "text": { "type": "mrkdwn", "text": "❌ *Tests gefaald* \n*Repository:* ${{ github.repository }}\n*Branch:* ${{ github.ref }}\n*Commit:* ${{ github.sha }}\n*Workflow:* ${{ github.workflow }}" } }, { "type": "actions", "elements": [ { "type": "button", "text": { "type": "plain_text", "text": "Bekijk Workflow" }, "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" } ] } ] } env: SLACK_WEBHOOK_URL: ${{ env.SLACK_WEBHOOK_URL }} # Optionele job voor succesmeldingen notify-success: runs-on: ubuntu-latest needs: build if: always() && needs.build.result == 'success' steps: - name: Haal Slack Webhook URL op uses: aws-actions/aws-ssm-get-parameters@v1 with: names: | /my-app/slack-webhook-url with-decryption: true env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_REGION: eu-west-1 - name: Verstuur succes notificatie uses: slackapi/slack-github-action@v1.23.0 with: payload: | { "text": "✅ Build succesvol in ${{ github.repository }}", "blocks": [ { "type": "section", "text": { "type": "mrkdwn", "text": "✅ *Build succesvol* \n*Repository:* ${{ github.repository }}\n*Branch:* ${{ github.ref }}\n*Workflow:* ${{ github.workflow }}" } } ] } env: SLACK_WEBHOOK_URL: ${{ env.SLACK_WEBHOOK_URL }} ``` **Benodigde repository secrets die je moet instellen in GitHub:** - `AWS_ACCESS_KEY_ID` - AWS toegangssleutel - `AWS_SECRET_ACCESS_KEY` - AWS geheime sleutel **AWS Parameter Store configuratie:** - Sla je Slack webhook URL op in AWS Parameter Store als `/my-app/slack-webhook-url` - Pas de parameter naam aan naar je eigen voorkeur **Belangrijke aanpassingen:** 1. Vervang `eu-west-1` met je AWS regio 2. Pas de parameter naam `/my-app/slack-webhook-url` aan naar je eigen structuur 3. Zorg dat je IAM gebruiker de juiste rechten heeft voor AWS Systems Manager Parameter Store Deze workflow zal automatisch notificaties versturen naar Slack wanneer tests falen, waarbij de gevoelige Slack webhook URL veilig wordt opgehaald uit AWS Parameter Store.