Skip to content

Commit

Permalink
Added basic GitHub Actions workflow (#1055)
Browse files Browse the repository at this point in the history
As we were running with some issues with Travis (e.g. limited run minutes), we're adding GitHub Actions as a separate CI unit tests runner. Tests are executed via Tox in virtual environments so we should expect the same results as in Travis, although we're not yet replacing it at this point.

* Adds a basic workflow that:
  * Runs flake8 for syntax errors and then runs non-remote unit tests using Tox.
  * Runs on Python 2.7, 3.6, 3.7, 3.8 and allows failures on 3.9 as we do in Travis.
* Adds a job that just builds the contributed docker image to check it's not failing.
  • Loading branch information
martingalloar committed Apr 16, 2021
1 parent 73bf8ca commit efbe78b
Showing 1 changed file with 77 additions and 0 deletions.
77 changes: 77 additions & 0 deletions .github/workflows/build_and_test.yml
@@ -0,0 +1,77 @@
# GitHub Action workflow to build and run Impacket's tests
#

name: Build and test Impacket

on: [push, pull_request]

env:
NO_REMOTE: true
DOCKER_TAG: impacket:latests

jobs:
test:
name: Run unit tests and build wheel
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
tox-env: [py27, py36, py37, py38]
experimental: [false]
include:
- tox-env: py27
python-version: 2.7
- tox-env: py36
python-version: 3.6
- tox-env: py37
python-version: 3.7
- tox-env: py38
python-version: 3.8
- tox-env: py39
python-version: 3.9
experimental: true
env:
TOXENV: ${{ matrix.tox-env }}
continue-on-error: ${{ matrix.experimental }}

steps:
- name: Checkout Impacket
uses: actions/checkout@v2

- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}

- name: Install Python dependencies
run: |
python -m pip install --upgrade pip wheel
pip install flake8 tox -r requirements.txt
- name: Check syntax errors
run: |
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
- name: Check PEP8 warnings
run: |
flake8 . --count --ignore=E1,E2,E3,E501,W291,W293 --exit-zero --max-complexity=65 --max-line-length=127 --statistics
- name: Run unit tests
run: |
tox
- name: Build wheel artifact
run: |
python setup.py bdist_wheel
docker:
name: Build docker image
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: Checkout Impacket
uses: actions/checkout@v2

- name: Build docker image
run: |
docker build -t ${{ env.DOCKER_TAG }} .

0 comments on commit efbe78b

Please sign in to comment.