diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml new file mode 100644 index 000000000..12822e635 --- /dev/null +++ b/.github/workflows/main.yaml @@ -0,0 +1,51 @@ +name: Test IM-Dashboard + +on: + push: + branches: ["master"] + pull_request: + branches: ["master"] + +jobs: + test: + runs-on: ubuntu-latest + steps: + - name: Check out the codebase. + uses: actions/checkout@v4 + + - name: Set up Python 3. + uses: actions/setup-python@v5 + with: + python-version: '3.10' + + - name: Install dependencies + run: python -m pip install pycodestyle + + - name: Check code style + run: pycodestyle --max-line-length=120 --ignore=E402,W504 . --exclude=doc + + - name: Install dependencies + run: | + sed -i -e 's|mysqlclient.*|PyMySQL|g' requirements.txt + pip install -r requirements.txt + pip install pymongo coverage nose mock + + - name: Prepare environment + run: | + cp app/config-sample.json app/config.json + mkdir tosca-templates + wget -P tosca-templates https://raw.githubusercontent.com/grycap/tosca/main/templates/simple-node-disk.yml + sed -i -e 's|/opt|'${GITHUB_WORKSPACE}'|g' app/config.json + sed -i -e 's|creds.db|tmp/creds.db|g' app/config.json + + - name: Unit tests + run: python -m coverage run --source=. -m unittest discover -s app/tests -p 'test*.py' + + - name: Generate XML coverage report + run: python -m coverage xml + + - name: Report coverage + uses: codacy/codacy-coverage-reporter-action@v1 + with: + project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} + coverage-reports: coverage.xml \ No newline at end of file