mirror of
				https://github.com/netbox-community/netbox.git
				synced 2024-05-10 07:54:54 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			85 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: CI
 | 
						|
on: [push, pull_request]
 | 
						|
permissions:
 | 
						|
  contents: read
 | 
						|
jobs:
 | 
						|
  build:
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    env:
 | 
						|
      NETBOX_CONFIGURATION: netbox.configuration_testing
 | 
						|
    strategy:
 | 
						|
      matrix:
 | 
						|
        python-version: ['3.8', '3.9', '3.10']
 | 
						|
        node-version: ['14.x']
 | 
						|
    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: Use Node.js ${{ matrix.node-version }}
 | 
						|
      uses: actions/setup-node@v2
 | 
						|
      with:
 | 
						|
        node-version: ${{ matrix.node-version }}
 | 
						|
    
 | 
						|
    - name: Install Yarn Package Manager
 | 
						|
      run: npm install -g yarn
 | 
						|
    
 | 
						|
    - name: Setup Node.js with Yarn Caching
 | 
						|
      uses: actions/setup-node@v2
 | 
						|
      with:
 | 
						|
        node-version: ${{ matrix.node-version }}
 | 
						|
        cache: yarn
 | 
						|
        cache-dependency-path: netbox/project-static/yarn.lock
 | 
						|
    
 | 
						|
    - name: Install Frontend Dependencies
 | 
						|
      run: yarn --cwd netbox/project-static
 | 
						|
 | 
						|
    - name: Install dependencies & set up configuration
 | 
						|
      run: |
 | 
						|
        python -m pip install --upgrade pip
 | 
						|
        pip install -r requirements.txt
 | 
						|
        pip install pycodestyle coverage tblib
 | 
						|
 | 
						|
    - name: Build documentation
 | 
						|
      run: mkdocs build
 | 
						|
 | 
						|
    - name: Collect static files
 | 
						|
      run: python netbox/manage.py collectstatic --no-input
 | 
						|
 | 
						|
    - name: Check PEP8 compliance
 | 
						|
      run: pycodestyle --ignore=W504,E501 --exclude=node_modules netbox/
 | 
						|
 | 
						|
    - name: Check UI ESLint, TypeScript, and Prettier Compliance
 | 
						|
      run: yarn --cwd netbox/project-static validate
 | 
						|
    
 | 
						|
    - name: Validate Static Asset Integrity
 | 
						|
      run: scripts/verify-bundles.sh
 | 
						|
 | 
						|
    - name: Run tests
 | 
						|
      run: coverage run --source="netbox/" netbox/manage.py test netbox/ --parallel
 | 
						|
 | 
						|
    - name: Show coverage report
 | 
						|
      run: coverage report --skip-covered --omit *migrations*
 |