Skip to content

Use ivelum action to send Slack notifications #119

Use ivelum action to send Slack notifications

Use ivelum action to send Slack notifications #119

Workflow file for this run

name: Tests
on:
push:
branches: [master]
pull_request:
branches: [master]
workflow_dispatch:
jobs:
notify-build-start:
# Secrets are not available for forks for security reasons, so pull
# request checks will fail when trying to send the Slack notification.
# Unfortunately, there's no way to explicitly check that a secret is
# available, so we check for event_name instead:
# https://github.com/actions/runner/issues/520
if: ${{ github.event_name == 'push' }}
runs-on: ubuntu-latest
steps:
# Send build notifications to Slack
- uses: ivelum/[email protected]
id: slack
with:
channel_id: C0PT3267R
status: STARTED
color: '#ee9b00'
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: 3.9
- name: get pip cache dir
id: pip-cache
run: echo "::set-output name=dir::$(pip cache dir)"
- name: cache pip
uses: actions/cache@v2
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: pip|lint
- run: pip install -r requirements-dev.txt
- run: flake8
- run: isort --diff -c .
# Send notification on build failure
- name: Notify slack fail
uses: ivelum/[email protected]
if: failure()
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
with:
channel_id: C0PT3267R
status: FAILED
color: '#d7263d'
tests:
needs: lint
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- {django: '==1.8.*', python: '2.7', os: 'ubuntu-20.04'}
- {django: '==1.8.*', python: '3.5', os: 'ubuntu-20.04'}
- {django: '==1.9.*', python: '2.7', os: 'ubuntu-20.04'}
- {django: '==1.9.*', python: '3.5', os: 'ubuntu-20.04'}
- {django: '==1.10.*', python: '2.7', os: 'ubuntu-20.04'}
- {django: '==1.10.*', python: '3.5', os: 'ubuntu-20.04'}
- {django: '==1.11.*', python: '2.7', os: 'ubuntu-20.04'}
- {django: '==1.11.*', python: '3.5', os: 'ubuntu-20.04'}
- {django: '==1.11.*', python: '3.6', os: 'ubuntu-20.04'}
- {django: '~=1.11.17', python: '3.7', os: 'ubuntu-latest'}
- {django: '==2.0.*', python: '3.5', os: 'ubuntu-20.04'}
- {django: '==2.0.*', python: '3.6', os: 'ubuntu-20.04'}
- {django: '==2.0.*', python: '3.7', os: 'ubuntu-latest'}
- {django: '==2.1.*', python: '3.5', os: 'ubuntu-20.04'}
- {django: '==2.1.*', python: '3.6', os: 'ubuntu-20.04'}
- {django: '==2.1.*', python: '3.7', os: 'ubuntu-latest'}
- {django: '==2.2.*', python: '3.5', os: 'ubuntu-20.04'}
- {django: '==2.2.*', python: '3.6', os: 'ubuntu-20.04'}
- {django: '==2.2.*', python: '3.7', os: 'ubuntu-latest'}
- {django: '~=2.2.8', python: '3.8', os: 'ubuntu-latest'}
- {django: '~=2.2.17', python: '3.9', os: 'ubuntu-latest'}
- {django: '==3.0.*', python: '3.6', os: 'ubuntu-20.04'}
- {django: '==3.0.*', python: '3.7', os: 'ubuntu-latest'}
- {django: '==3.0.*', python: '3.8', os: 'ubuntu-latest'}
- {django: '~=3.0.11', python: '3.9', os: 'ubuntu-latest'}
- {django: '==3.1.*', python: '3.6', os: 'ubuntu-20.04'}
- {django: '==3.1.*', python: '3.7', os: 'ubuntu-latest'}
- {django: '==3.1.*', python: '3.8', os: 'ubuntu-latest'}
- {django: '~=3.1.3', python: '3.9', os: 'ubuntu-latest'}
- {django: '==3.2.*', python: '3.6', os: 'ubuntu-20.04'}
- {django: '==3.2.*', python: '3.7', os: 'ubuntu-latest'}
- {django: '==3.2.*', python: '3.8', os: 'ubuntu-latest'}
- {django: '==3.2.*', python: '3.9', os: 'ubuntu-latest'}
- {django: '~=3.2.9', python: '3.10', os: 'ubuntu-latest'}
- {django: '==4.0.*', python: '3.8', os: 'ubuntu-latest'}
- {django: '==4.0.*', python: '3.9', os: 'ubuntu-latest'}
- {django: '==4.0.*', python: '3.10', os: 'ubuntu-latest'}
- {django: '==4.1.*', python: '3.8', os: 'ubuntu-latest'}
- {django: '==4.1.*', python: '3.9', os: 'ubuntu-latest'}
- {django: '==4.1.*', python: '3.10', os: 'ubuntu-latest'}
- {django: '~=4.1.3', python: '3.11', os: 'ubuntu-latest'}
- {django: '==4.2.*', python: '3.8', os: 'ubuntu-latest'}
- {django: '==4.2.*', python: '3.9', os: 'ubuntu-latest'}
- {django: '==4.2.*', python: '3.10', os: 'ubuntu-latest'}
- {django: '==4.2.*', python: '3.11', os: 'ubuntu-latest'}
- {django: '~=4.2.8', python: '3.12', os: 'ubuntu-latest'}
- {django: '==5.0.*', python: '3.10', os: 'ubuntu-latest'}
- {django: '==5.0.*', python: '3.11', os: 'ubuntu-latest'}
- {django: '==5.0.*', python: '3.12', os: 'ubuntu-latest'}
steps:
- uses: actions/checkout@v2
- name: Setup Python v. >2.7
if: ${{ matrix.python != '2.7' }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python }}
- name: Setup Python v2.7
if: ${{ matrix.python == '2.7' }}
uses: MatteoH2O1999/setup-python@v2
with:
python-version: ${{ matrix.python }}
allow-build: info
cache-build: true
- name: update pip
run: |
pip install -U wheel
pip install -U setuptools
python -m pip install -U pip
- name: get pip cache dir
id: pip-cache
run: echo "::set-output name=dir::$(pip cache dir)"
- name: cache pip
uses: actions/cache@v2
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: pip|${{ matrix.python }}|${{ matrix.django }}
- run: pip install PLY
- run: pip install Django${{ matrix.django }}
- run: pip install -e .
- run: python test_project/manage.py test core.tests
# Send notification on build failure
- name: Notify slack fail
uses: ivelum/[email protected]
if: failure()
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
with:
channel_id: C0PT3267R
status: FAILED
color: '#d7263d'
notify-build-success:
if: ${{ github.event_name == 'push' }}
needs: tests
runs-on: ubuntu-latest
steps:
# Send notification on build success
- name: Notify slack success
uses: ivelum/[email protected]
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
with:
channel_id: C0PT3267R
status: SUCCESS
color: '#16db65'