Files
django-anymail/.github/workflows/integration-test.yml
Mike Edmunds a025ae9543 Mailjet: update integration tests
Mailjet deleted the Anymail testing account without notice.
Recreating the account changed the test template id. Move
the id to an environment variable to simplify changing it.
2024-11-21 18:02:46 -08:00

106 lines
5.3 KiB
YAML

name: integration-test
on:
pull_request:
push:
branches: ["main", "v[0-9]*"]
tags: ["v[0-9]*"]
workflow_dispatch:
schedule:
# Weekly test (on branch main) every Thursday at 12:15 UTC.
# (Used to monitor compatibility with ESP API changes.)
- cron: "15 12 * * 4"
jobs:
skip_duplicate_runs:
# Avoid running the live integration tests twice on the same code
# (to conserve limited sending quotas in the live ESP test accounts)
runs-on: ubuntu-22.04
continue-on-error: true
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
steps:
- id: skip_check
# uses: fkirc/skip-duplicate-actions@v5.3.1
uses: fkirc/skip-duplicate-actions@f75f66ce1886f00957d99748a42c724f4330bdcf
with:
concurrent_skipping: "same_content_newer"
cancel_others: "true"
test:
name: ${{ matrix.config.tox }} ${{ matrix.config.options }}
runs-on: ubuntu-22.04
needs: skip_duplicate_runs
if: needs.skip_duplicate_runs.outputs.should_skip != 'true'
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
# Live API integration tests are run on only one representative Python/Django version
# combination, to avoid rapidly consuming the testing accounts' entire send allotments.
config:
- { tox: django41-py310-amazon_ses, python: "3.12" }
- { tox: django41-py310-brevo, python: "3.12" }
- { tox: django41-py310-mailersend, python: "3.12" }
- { tox: django41-py310-mailgun, python: "3.12" }
- { tox: django41-py310-mailjet, python: "3.12" }
- { tox: django41-py310-mandrill, python: "3.12" }
- { tox: django41-py310-postal, python: "3.12" }
- { tox: django41-py310-postmark, python: "3.12" }
- { tox: django41-py310-resend, python: "3.12" }
- { tox: django41-py310-sendgrid, python: "3.12" }
- { tox: django41-py310-sparkpost, python: "3.12" }
- { tox: django41-py310-unisender_go, python: "3.12" }
steps:
- name: Get code
uses: actions/checkout@v4
- name: Setup Python ${{ matrix.config.python }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.config.python }}
- name: Install tox
run: |
set -x
python --version
pip install 'tox<4'
tox --version
- name: Test ${{ matrix.config.tox }}
run: |
tox -e ${{ matrix.config.tox }}
continue-on-error: ${{ contains( matrix.config.options, 'allow-failures' ) }}
env:
CONTINUOUS_INTEGRATION: true
TOX_FORCE_IGNORE_OUTCOME: false
ANYMAIL_RUN_LIVE_TESTS: true
ANYMAIL_TEST_AMAZON_SES_ACCESS_KEY_ID: ${{ secrets.ANYMAIL_TEST_AMAZON_SES_ACCESS_KEY_ID }}
ANYMAIL_TEST_AMAZON_SES_DOMAIN: ${{ secrets.ANYMAIL_TEST_AMAZON_SES_DOMAIN }}
ANYMAIL_TEST_AMAZON_SES_REGION_NAME: ${{ secrets.ANYMAIL_TEST_AMAZON_SES_REGION_NAME }}
ANYMAIL_TEST_AMAZON_SES_SECRET_ACCESS_KEY: ${{ secrets.ANYMAIL_TEST_AMAZON_SES_SECRET_ACCESS_KEY }}
ANYMAIL_TEST_BREVO_API_KEY: ${{ secrets.ANYMAIL_TEST_BREVO_API_KEY }}
ANYMAIL_TEST_BREVO_DOMAIN: ${{ vars.ANYMAIL_TEST_BREVO_DOMAIN }}
ANYMAIL_TEST_MAILERSEND_API_TOKEN: ${{ secrets.ANYMAIL_TEST_MAILERSEND_API_TOKEN }}
ANYMAIL_TEST_MAILERSEND_DOMAIN: ${{ secrets.ANYMAIL_TEST_MAILERSEND_DOMAIN }}
ANYMAIL_TEST_MAILGUN_API_KEY: ${{ secrets.ANYMAIL_TEST_MAILGUN_API_KEY }}
ANYMAIL_TEST_MAILGUN_DOMAIN: ${{ secrets.ANYMAIL_TEST_MAILGUN_DOMAIN }}
ANYMAIL_TEST_MAILJET_API_KEY: ${{ secrets.ANYMAIL_TEST_MAILJET_API_KEY }}
ANYMAIL_TEST_MAILJET_DOMAIN: ${{ vars.ANYMAIL_TEST_MAILJET_DOMAIN }}
ANYMAIL_TEST_MAILJET_SECRET_KEY: ${{ secrets.ANYMAIL_TEST_MAILJET_SECRET_KEY }}
ANYMAIL_TEST_MAILJET_TEMPLATE_ID: ${{ vars.ANYMAIL_TEST_MAILJET_TEMPLATE_ID }}
ANYMAIL_TEST_MANDRILL_API_KEY: ${{ secrets.ANYMAIL_TEST_MANDRILL_API_KEY }}
ANYMAIL_TEST_MANDRILL_DOMAIN: ${{ secrets.ANYMAIL_TEST_MANDRILL_DOMAIN }}
ANYMAIL_TEST_POSTMARK_DOMAIN: ${{ secrets.ANYMAIL_TEST_POSTMARK_DOMAIN }}
ANYMAIL_TEST_POSTMARK_SERVER_TOKEN: ${{ secrets.ANYMAIL_TEST_POSTMARK_SERVER_TOKEN }}
ANYMAIL_TEST_POSTMARK_TEMPLATE_ID: ${{ secrets.ANYMAIL_TEST_POSTMARK_TEMPLATE_ID }}
ANYMAIL_TEST_RESEND_API_KEY: ${{ secrets.ANYMAIL_TEST_RESEND_API_KEY }}
ANYMAIL_TEST_RESEND_DOMAIN: ${{ secrets.ANYMAIL_TEST_RESEND_DOMAIN }}
ANYMAIL_TEST_SENDGRID_API_KEY: ${{ secrets.ANYMAIL_TEST_SENDGRID_API_KEY }}
ANYMAIL_TEST_SENDGRID_DOMAIN: ${{ secrets.ANYMAIL_TEST_SENDGRID_DOMAIN }}
ANYMAIL_TEST_SENDGRID_TEMPLATE_ID: ${{ secrets.ANYMAIL_TEST_SENDGRID_TEMPLATE_ID }}
ANYMAIL_TEST_SPARKPOST_API_KEY: ${{ secrets.ANYMAIL_TEST_SPARKPOST_API_KEY }}
ANYMAIL_TEST_SPARKPOST_DOMAIN: ${{ secrets.ANYMAIL_TEST_SPARKPOST_DOMAIN }}
ANYMAIL_TEST_UNISENDER_GO_API_KEY: ${{ secrets.ANYMAIL_TEST_UNISENDER_GO_API_KEY }}
ANYMAIL_TEST_UNISENDER_GO_API_URL: ${{ vars.ANYMAIL_TEST_UNISENDER_GO_API_URL }}
ANYMAIL_TEST_UNISENDER_GO_DOMAIN: ${{ vars.ANYMAIL_TEST_UNISENDER_GO_DOMAIN }}
ANYMAIL_TEST_UNISENDER_GO_TEMPLATE_ID: ${{ vars.ANYMAIL_TEST_UNISENDER_GO_TEMPLATE_ID }}