Skip to content

Workflow file for this run

name: Run tests and build Docker image for development version
on:
push:
branches:
- 'dev*'
jobs:
development:
runs-on: ubuntu-latest
timeout-minutes: 15
permissions:
packages: write
steps:
- name: Check out repository code
uses: actions/checkout@v4
with:
fetch-tags: True
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install dependencies
run: |
$(cat Dockerfile | grep "pip install" | cut -f2- -d " ")
- name: Install linters
run: |
python -m pip install pylint==3.1.0 black==24.3.0
# - name: Lint Python code with black
# run: |
# black --check --skip-string-normalization --line-length 120 bot
- name: Lint Python code with Pylint
run: |
pylint --disable=R,C,W1203,W0105 bot/main.py
- name: Lint Dockerfile with hadolint
uses: hadolint/[email protected]
with:
dockerfile: Dockerfile
failure-threshold: error
ignore: DL3008,SC3009,DL3013
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
# do this step only on push to main and do not run for pull request
if: github.event_name == 'push'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build Docker image for development version and push to registry
uses: docker/build-push-action@v5
with:
context: .
# push to registry when merge to branch starting with dev
push: ${{ startsWith(github.ref, 'refs/heads/dev') }}
no-cache: true
tags: ghcr.io/yurnov/explosion-notifier:dev