Prechádzať zdrojové kódy

Move CI to GitHub Actions (#5431)

Replaces Travis CI with GitHub Actions
Jeremy Stretch 5 rokov pred
rodič
commit
cc5c000a6d

+ 50 - 0
.github/workflows/ci.yml

@@ -0,0 +1,50 @@
+name: CI
+on: push
+jobs:
+  build:
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        python-version: [3.6, 3.7]
+    services:
+      redis:
+        image: redis
+        ports:
+          - 6379:6379
+      postgres:
+        image: postgres
+        env:
+          POSTGRES_USER: netbox
+          POSTGRES_PASSWORD: netbox
+        options: >-
+          --health-cmd pg_isready
+          --health-interval 10s
+          --health-timeout 5s
+          --health-retries 5
+        ports:
+          - 5432:5432
+
+    steps:
+    - name: Check out repo
+      uses: actions/checkout@v2
+
+    - name: Set up Python ${{ matrix.python-version }}
+      uses: actions/setup-python@v2
+      with:
+        python-version: ${{ matrix.python-version }}
+
+    - name: Install dependencies & set up configuration
+      run: |
+        python -m pip install --upgrade pip
+        pip install -r requirements.txt
+        pip install pycodestyle coverage
+        ln -s configuration.testing.py netbox/netbox/configuration.py
+
+    - name: Check PEP8 compliance
+      run: pycodestyle --ignore=W504,E501 netbox/
+
+    - name: Run tests
+      run: coverage run --source="netbox/" netbox/manage.py test netbox/
+
+    - name: Show coverage report
+      run: coverage report --skip-covered --omit *migrations*

+ 0 - 19
.travis.yml

@@ -1,19 +0,0 @@
-sudo: required
-services:
-  - postgresql
-  - redis-server
-addons:
-  postgresql: "9.6"
-language: python
-python:
-  - "3.6"
-  - "3.7"
-install:
-  - pip install -r requirements.txt
-  - pip install pycodestyle
-  - pip install coverage
-before_script:
-  - psql --version
-  - psql -U postgres -c 'SELECT version();'
-script:
-  - ./scripts/cibuild.sh

+ 2 - 2
README.md

@@ -19,8 +19,8 @@ or join us in the **#netbox** Slack channel on [NetworkToCode](https://networkto
 
 |             | status |
 |-------------|------------|
-| **master** | [![Build Status](https://travis-ci.org/netbox-community/netbox.svg?branch=master)](https://travis-ci.com/netbox-community/netbox/) |
-| **develop** | [![Build Status](https://travis-ci.org/netbox-community/netbox.svg?branch=develop)](https://travis-ci.com/netbox-community/netbox/) |
+| **master** | ![Build status](https://github.com/netbox-community/netbox/workflows/CI/badge.svg?branch=master) |
+| **develop** | ![Build status](https://github.com/netbox-community/netbox/workflows/CI/badge.svg?branch=develop) |
 
 ### Screenshots
 

+ 2 - 2
netbox/netbox/configuration.testing.py

@@ -7,8 +7,8 @@ ALLOWED_HOSTS = ['*']
 
 DATABASE = {
     'NAME': 'netbox',
-    'USER': '',
-    'PASSWORD': '',
+    'USER': 'netbox',
+    'PASSWORD': 'netbox',
     'HOST': 'localhost',
     'PORT': '',
     'CONN_MAX_AGE': 300,

+ 0 - 60
scripts/cibuild.sh

@@ -1,60 +0,0 @@
-#!/bin/bash
-
-# Exit code starts at 0 but is modified if any checks fail
-EXIT=0
-
-# Output a line prefixed with a timestamp
-info()
-{
-	echo "$(date +'%F %T') |"
-}
-
-# Track number of seconds required to run script
-START=$(date +%s)
-echo "$(info) starting build checks."
-
-# Syntax check all python source files
-SYNTAX=$(find . -name "*.py" -type f -exec python -m py_compile {} \; 2>&1)
-if [[ ! -z $SYNTAX ]]; then
-	echo -e "$SYNTAX"
-	echo -e "\n$(info) detected one or more syntax errors, failing build."
-	EXIT=1
-fi
-
-# Check all python source files for PEP 8 compliance, but explicitly
-# ignore:
-#  - W504: line break after binary operator
-#  - E501: line greater than 80 characters in length
-pycodestyle \
-    --ignore=W504,E501 \
-    netbox/
-RC=$?
-if [[ $RC != 0 ]]; then
-	echo -e "\n$(info) one or more PEP 8 errors detected, failing build."
-	EXIT=$RC
-fi
-
-# Point to the testing configuration file for use in CI
-ln -s configuration.testing.py netbox/netbox/configuration.py
-
-# Run NetBox tests
-coverage run --source="netbox/" netbox/manage.py test netbox/
-RC=$?
-if [[ $RC != 0 ]]; then
-	echo -e "\n$(info) one or more tests failed, failing build."
-	EXIT=$RC
-fi
-
-# Show code coverage report
-coverage report --skip-covered --omit *migrations*
-RC=$?
-if [[ $RC != 0 ]]; then
-	echo -e "\n$(info) failed to generate code coverage report."
-	EXIT=$RC
-fi
-
-# Show build duration
-END=$(date +%s)
-echo "$(info) exiting with code $EXIT after $(($END - $START)) seconds."
-
-exit $EXIT