diff --git a/.github/workflows/C.yml b/.github/workflows/C.yml new file mode 100644 index 0000000..da10a25 --- /dev/null +++ b/.github/workflows/C.yml @@ -0,0 +1,110 @@ +# Workflow for CPP +name: ConaPizza + +# Relevant to events - https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows +on: + pull_request: + types: [synchronize, opened, reopened, ready_for_review] + paths: + - '**.c' + +jobs: + # Linting + lint-c: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Installing dependencies.. + run: if ! apt list --installed | grep -qP ".*cppcheck.*"; then apt install -y cppcheck; fi + - name: Linting.. + run: for file in $(git --no-pager diff --name-only origin/master | grep -oP "^\w+\.c") ;do cppcheck "$file";done + # Kernel specific builds + build-gcc-c: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest, windows-latest] + steps: + - uses: actions/checkout@v2 + - name: building.. + run: make build-gcc-c + build-clang-c: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest, windows-latest] + steps: + - uses: actions/checkout@v2 + - name: building.. + run: make build-clang-c + + # Docker builds + build-gcc-c-debian: + runs-on: ubuntu-latest + steps: + - uses: docker://debian/testing:latest + - uses: actions/checkout@v2 + - name: building.. + run: make build-gcc-c + build-clang-c-debian: + runs-on: ubuntu-latest + steps: + - uses: docker://debian/testing:latest + - uses: actions/checkout@v2 + - name: building.. + run: make build-clang-c + + build-gcc-c-fedora: + runs-on: ubuntu-latest + steps: + - uses: docker://fedora/latest:latest + - uses: actions/checkout@v2 + - name: building.. + run: make build-gcc-c + build-clang-c-fedora: + runs-on: ubuntu-latest + steps: + - uses: docker://fedora/latest:latest + - uses: actions/checkout@v2 + - name: building.. + run: make build-clang-c + + # Run tests + check-gcc-c: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest, windows-latest, ubuntu-latest] + steps: + - uses: actions/checkout@v2 + - name: running tests.. + run: make check-gcc-c + check-clang-c: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest, windows-latest, ubuntu-latest] + steps: + - uses: actions/checkout@v2 + - name: running tests.. + run: make check-clang-c + + # Benchmarks + bench-gcc-c: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest, windows-latest, ubuntu-latest] + steps: + - uses: actions/checkout@v2 + - name: running benchmarks.. + run: make bench-gcc-c + bench-clang-c: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest, windows-latest, ubuntu-latest] + steps: + - uses: actions/checkout@v2 + - name: running benchmarks.. + run: make bench-clang-c \ No newline at end of file diff --git a/.github/workflows/CPP.yml b/.github/workflows/CPP.yml new file mode 100644 index 0000000..ece1c40 --- /dev/null +++ b/.github/workflows/CPP.yml @@ -0,0 +1,110 @@ +# Workflow for CPP +name: Cona2xPizza + +# Relevant to events - https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows +on: + pull_request: + types: [synchronize, opened, reopened, ready_for_review] + paths: + - '**.cpp' + +jobs: + # Linting + lint-cpp: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Installing dependencies.. + run: if ! apt list --installed | grep -qP ".*cppcheck.*"; then apt install -y cppcheck; fi + - name: Linting.. + run: for file in $(git --no-pager diff --name-only origin/master | grep -oP "^\w+\.cpp") ;do cppcheck "$file";done + # Kernel specific builds + build-gcc-cpp: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest, windows-latest] + steps: + - uses: actions/checkout@v2 + - name: building.. + run: make build-gcc-cpp + build-clang-cpp: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest, windows-latest] + steps: + - uses: actions/checkout@v2 + - name: building.. + run: make build-clang-cpp + + # Docker builds + build-gcc-cpp-debian: + runs-on: ubuntu-latest + steps: + - uses: docker://debian/testing:latest + - uses: actions/checkout@v2 + - name: building.. + run: make build-gcc-cpp + build-clang-cpp-debian: + runs-on: ubuntu-latest + steps: + - uses: docker://debian/testing:latest + - uses: actions/checkout@v2 + - name: building.. + run: make build-clang-cpp + + build-gcc-cpp-fedora: + runs-on: ubuntu-latest + steps: + - uses: docker://fedora/latest:latest + - uses: actions/checkout@v2 + - name: building.. + run: make build-gcc-cpp + build-clang-cpp-fedora: + runs-on: ubuntu-latest + steps: + - uses: docker://fedora/latest:latest + - uses: actions/checkout@v2 + - name: building.. + run: make build-clang-cpp + + # Run tests + check-gcc-cpp: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest, windows-latest, ubuntu-latest] + steps: + - uses: actions/checkout@v2 + - name: running tests.. + run: make check-gcc-cpp + check-clang-cpp: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest, windows-latest, ubuntu-latest] + steps: + - uses: actions/checkout@v2 + - name: running tests.. + run: make check-clang-cpp + + # Benchmarks + bench-gcc-cpp: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest, windows-latest, ubuntu-latest] + steps: + - uses: actions/checkout@v2 + - name: running benchmarks.. + run: make bench-gcc-cpp + bench-clang-cpp: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest, windows-latest, ubuntu-latest] + steps: + - uses: actions/checkout@v2 + - name: running benchmarks.. + run: make bench-clang-cpp \ No newline at end of file diff --git a/.github/workflows/RonaLisa.yml b/.github/workflows/Vlang.yml similarity index 59% rename from .github/workflows/RonaLisa.yml rename to .github/workflows/Vlang.yml index e7f9987..eb70fb7 100644 --- a/.github/workflows/RonaLisa.yml +++ b/.github/workflows/Vlang.yml @@ -1,35 +1,44 @@ -# Workflow for rustlang -name: RonaLisa (Rustlang) +# Workflow for vlang +name: VonaLisa # Relevant to events - https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows on: pull_request: - branches: [master] types: [synchronize, opened, reopened, ready_for_review] paths: - - '**.rs' + - '**.v' jobs: - build-rustlang: + # Kernel specific builds + build-vlang: runs-on: ${{ matrix.os }} strategy: matrix: - os: [macos-latest, windows-latest, ubuntu-latest] + os: [macos-latest, windows-latest] steps: - uses: actions/checkout@v2 - name: building.. - run: make build-rustlang - build-rustlang-debian: - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest] + run: make build-vlang + + # Docker builds + build-vlang-debian: + runs-on: ubuntu-latest steps: - uses: docker://debian/testing:latest - uses: actions/checkout@v2 - name: building.. - run: make build-rustlang - check-rustlang: + run: make build-vlang + + build-vlang-fedora: + runs-on: ubuntu-latest + steps: + - uses: docker://fedora/latest:latest + - uses: actions/checkout@v2 + - name: building.. + run: make build-vlang + + # Run tests + check-vlang: runs-on: ${{ matrix.os }} strategy: matrix: @@ -37,8 +46,10 @@ jobs: steps: - uses: actions/checkout@v2 - name: running tests.. - run: make check-rustlang - bench-rustlang: + run: make check-vlang + + # Benchmarks + bench-vlang: runs-on: ${{ matrix.os }} strategy: matrix: @@ -46,4 +57,4 @@ jobs: steps: - uses: actions/checkout@v2 - name: running benchmarks.. - run: make bench-rustlang \ No newline at end of file + run: make bench-vlang \ No newline at end of file diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml new file mode 100644 index 0000000..656be7b --- /dev/null +++ b/.github/workflows/python.yml @@ -0,0 +1,88 @@ +# Workflow for python +name: PynaPyza + +# Relevant to events - https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows +on: + pull_request: + types: [synchronize, opened, reopened, ready_for_review] + paths: + - '**.py' + +jobs: + # Linting + lint-python: + runs-on: ${{ matrix.os }} + strategy: + matrix: + python-version: [2.7, 3.5, 3.6, 3.7, 3.8] + os: [macos-latest, windows-latest, ubuntu-latest] + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v1 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + - name: Lint with flake8 + run: | + pip install flake8 + # stop the build if there are Python syntax errors or undefined names + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Test with pytest + run: | + pip install pytest + for file in $(git --no-pager diff --name-only origin/master | grep -oP "^\w+\.py") ;do pytest "$file";done + # Kernel specific builds + build-python: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest, windows-latest] + steps: + - uses: actions/checkout@v2 + - name: building.. + run: make build-python + + # Docker builds + build-python-debian: + runs-on: ubuntu-latest + steps: + - uses: docker://debian/testing:latest + - uses: actions/checkout@v2 + - name: building.. + run: make build-python + + build-python-fedora: + runs-on: ubuntu-latest + steps: + - uses: docker://fedora/latest:latest + - uses: actions/checkout@v2 + - name: building.. + run: make build-python + + # Run tests + check-python: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest, windows-latest, ubuntu-latest] + steps: + - uses: actions/checkout@v2 + - name: running tests.. + run: make check-python + + # Benchmarks + bench-python: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest, windows-latest, ubuntu-latest] + steps: + - uses: actions/checkout@v2 + - name: running benchmarks.. + run: make bench-python \ No newline at end of file diff --git a/Makefile b/Makefile index 81cc584..8aface6 100644 --- a/Makefile +++ b/Makefile @@ -18,7 +18,7 @@ vendor: @ [ ! -d vendor/rustlang ] && mkdir vendor/rustlang @ [ ! -d vendor/rustlang/clap-rs ] && git clone https://github.com/clap-rs/clap.git vendor/rustlang/clap-rs @ for file in vendor/rustlang/clap-rs/benches/*; do cp "$$file" benches/rustlang/claprs-$${file##vendor/rustlang/clap-rs/benches/??_}; done -build: build-rustlang build-clang-c build-gcc-c build-gcc-ccp build-clang-ccp build-brainfuck build-python build-vlang build-golang +build: build-rustlang build-clang-c build-gcc-c build-gcc-ccp build-clang build-brainfuck build-python build-vlang build-golang # FIXME: Build in '$repodir/build/build-rustlang' instead of '$repodir/target' for multilang support build-rustlang: