37 lines
1.1 KiB
YAML
37 lines
1.1 KiB
YAML
name: Docker Image CI
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
types: [opened, synchronize, reopened]
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Build the Docker image
|
|
run: docker compose build --no-cache
|
|
|
|
- name: Verify the Docker image
|
|
# clearcache is provided by Django extras, which is not loaded if netbox-slm cannot be loaded
|
|
run: docker compose run netbox sh -c "/opt/netbox/venv/bin/python manage.py clearcache"
|
|
|
|
- name: Run Django tests with coverage for netbox_slm
|
|
run: |
|
|
chmod go+w ci/reports
|
|
docker compose run netbox sh -c " \
|
|
/opt/netbox/venv/bin/coverage run --source='netbox_slm' manage.py test netbox_slm && \
|
|
/opt/netbox/venv/bin/coverage report --fail-under=0 && \
|
|
/opt/netbox/venv/bin/coverage xml -o /ci/reports/coverage.xml"
|
|
|
|
- name: Sonarcloud scan
|
|
if: env.SONAR_TOKEN != null
|
|
uses: sonarsource/sonarcloud-github-action@master
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|