Initial draft of Gitea-oriented actions
This commit is contained in:
		
							
								
								
									
										70
									
								
								.gitea/workflows/ci-python.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								.gitea/workflows/ci-python.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,70 @@
 | 
			
		||||
name: Python CI
 | 
			
		||||
on:
 | 
			
		||||
  workflow_call:
 | 
			
		||||
    inputs:
 | 
			
		||||
      python-version:
 | 
			
		||||
        type: string
 | 
			
		||||
        default: "3.11"
 | 
			
		||||
        description: "Version of Python to use for testing environment"
 | 
			
		||||
    secrets:
 | 
			
		||||
      SONAR_TOKEN:
 | 
			
		||||
        required: true
 | 
			
		||||
      SNYK_TOKEN:
 | 
			
		||||
        required: true
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  ci:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Set python-version
 | 
			
		||||
        id: python-version
 | 
			
		||||
        run: |
 | 
			
		||||
          PYTHON_VERSION=${{ inputs.python-version }}
 | 
			
		||||
          echo "value=${PYTHON_VERSION:-"3.11"}" >> $GITEA_OUTPUT
 | 
			
		||||
 | 
			
		||||
      - name: Check out repository code
 | 
			
		||||
        uses: actions/checkout@v4.1.7
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 0
 | 
			
		||||
 | 
			
		||||
      - name: Setup Python
 | 
			
		||||
        uses: actions/setup-python@v5
 | 
			
		||||
        with:
 | 
			
		||||
          python-version: "${{ steps.python-version.outputs.value }}"
 | 
			
		||||
 | 
			
		||||
      - name: Update Pip
 | 
			
		||||
        run: pip install -U pip
 | 
			
		||||
      
 | 
			
		||||
      - uses: actions/cache@v3
 | 
			
		||||
        name: Define cache for dependencies
 | 
			
		||||
        with:
 | 
			
		||||
          path: .
 | 
			
		||||
          key: venv-${{ hashFiles('requirements**.txt') }}
 | 
			
		||||
          restore-keys: venv-${{ hashFiles('requirements**.txt') }}
 | 
			
		||||
 | 
			
		||||
      - name: Install dependencies
 | 
			
		||||
        run: |
 | 
			
		||||
          pip install -r requirements.txt
 | 
			
		||||
          pip install -r requirements-dev.txt
 | 
			
		||||
 | 
			
		||||
      - name: Lint
 | 
			
		||||
        run: pylint --fail-under=8 --recursive=yes --output-format=parseable --output=lintreport.txt .
 | 
			
		||||
 | 
			
		||||
      - name: Unit Test
 | 
			
		||||
        run: |
 | 
			
		||||
          coverage run -m pytest -v --junitxml=testresults.xml
 | 
			
		||||
          coverage xml
 | 
			
		||||
          sed -i 's@${{ github.workspace }}@/github/workspace@g' coverage.xml
 | 
			
		||||
 | 
			
		||||
      - name: SonarQube Cloud Scan
 | 
			
		||||
        uses: SonarSource/sonarqube-scan-action@v4.2.1
 | 
			
		||||
        env:
 | 
			
		||||
          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
 | 
			
		||||
 | 
			
		||||
      - name: Snyk Vulnerability Scan
 | 
			
		||||
        uses: snyk/actions/python-3.10@master
 | 
			
		||||
        continue-on-error: true # To make sure that SARIF upload gets called
 | 
			
		||||
        env:
 | 
			
		||||
          SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
 | 
			
		||||
        with:
 | 
			
		||||
          args: --sarif-file-output=snyk.sarif --all-projects
 | 
			
		||||
		Reference in New Issue
	
	Block a user