diff --git a/.github/workflows/macos-pytest.yml b/.github/workflows/macos-pytest.yml deleted file mode 100644 index 56b2b27c..00000000 --- a/.github/workflows/macos-pytest.yml +++ /dev/null @@ -1,74 +0,0 @@ -# This workflow will install Python dependencies, run tests and lint with a single version of Python -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions - -name: pytest on macOS - -on: - pull_request: - branches: [ "master" ] - -jobs: - build: - if: '! github.event.pull_request.draft' - runs-on: ${{ matrix.os }} - - defaults: - run: - working-directory: . - - strategy: - matrix: - include: - - os: macos-latest - arch: arm64 - python-version: "3.8" - - os: macos-latest - arch: arm64 - python-version: "3.9" - - os: macos-latest - arch: arm64 - python-version: "3.10" - - os: macos-latest - arch: arm64 - python-version: "3.11" - - os: macos-latest - arch: arm64 - python-version: "3.12" - - - os: macos-latest - arch: x86_64 - python-version: "3.8" - - os: macos-latest - arch: x86_64 - python-version: "3.9" - - os: macos-latest - arch: x86_64 - python-version: "3.10" - - os: macos-latest - arch: x86_64 - python-version: "3.11" - - os: macos-latest - arch: x86_64 - python-version: "3.12" - - steps: - - uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - - name: Run server - working-directory: ./src/rpcserver - run: | - make SERVER_CFLAGS=-DSAFE_READ_WRITES - sudo nohup ./rpcserver & - - name: Install python package + pytest - working-directory: ./src/rpcclient - run: | - python -m pip install --upgrade pip - python -m pip install -U pytest - python -m pip install -U . - - name: pytest - working-directory: ./src/rpcclient - run: | - python -m pytest --ci --local-machine diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml new file mode 100644 index 00000000..fe020c4a --- /dev/null +++ b/.github/workflows/pull-request.yml @@ -0,0 +1,145 @@ +# This workflow will install Python dependencies, run tests and lint with a single version of Python +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions + +name: pull request + +on: + pull_request: + branches: [ "master" ] + +jobs: + python-app: + if: '! github.event.pull_request.draft' + runs-on: ubuntu-latest + + defaults: + run: + working-directory: ./src/rpcclient + + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + python-version: [ 3.8, 3.9, "3.10", 3.11, 3.12 ] + + steps: + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + - name: Lint with flake8 + run: | + python -m pip install flake8 + flake8 . --max-complexity=14 --max-line-length=127 --statistics + - name: Verify sorted imports + run: | + python -m pip install isort + isort . -m HANGING_INDENT -l 120 --check-only + - name: Build + # TODO: remove when lief releases the 3.12 wheel (https://github.com/lief-project/LIEF/issues/990) + if: matrix.python-version != 3.12 + run: | + python -m pip install build + python3 -m build + - name: Install + # TODO: remove when lief releases the 3.12 wheel (https://github.com/lief-project/LIEF/issues/990) + if: matrix.python-version != 3.12 + run: | + python3 -m pip install . + - name: Run help + # TODO: remove when lief releases the 3.12 wheel (https://github.com/lief-project/LIEF/issues/990) + if: matrix.python-version != 3.12 + run: | + python3 -m rpcclient --help + + build-linux-server: + if: '! github.event.pull_request.draft' + runs-on: ${{ matrix.os }} + + defaults: + run: + working-directory: ./src/rpcserver + + strategy: + matrix: + include: + - os: ubuntu-latest + arch: aarch64 + - os: ubuntu-latest + arch: i686 + - os: ubuntu-latest + arch: x86_64 + + steps: + - uses: actions/checkout@v3 + - name: Test make + run: | + make clean all + + pytest: + if: '! github.event.pull_request.draft' + needs: [python-app, build-linux-server] + runs-on: ${{ matrix.os }} + + defaults: + run: + working-directory: . + + strategy: + matrix: + include: + - os: macos-latest + arch: arm64 + python-version: "3.8" + - os: macos-latest + arch: arm64 + python-version: "3.9" + - os: macos-latest + arch: arm64 + python-version: "3.10" + - os: macos-latest + arch: arm64 + python-version: "3.11" + # TODO: remove when lief releases the 3.12 wheel (https://github.com/lief-project/LIEF/issues/990) + # - os: macos-latest + # arch: arm64 + # python-version: "3.12" + + - os: macos-latest + arch: x86_64 + python-version: "3.8" + - os: macos-latest + arch: x86_64 + python-version: "3.9" + - os: macos-latest + arch: x86_64 + python-version: "3.10" + - os: macos-latest + arch: x86_64 + python-version: "3.11" + # TODO: remove when lief releases the 3.12 wheel (https://github.com/lief-project/LIEF/issues/990) + # - os: macos-latest + # arch: x86_64 + # python-version: "3.12" + + steps: + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + - name: Run server + working-directory: ./src/rpcserver + run: | + make SERVER_CFLAGS=-DSAFE_READ_WRITES + sudo nohup ./rpcserver & + - name: Install python package + pytest + working-directory: ./src/rpcclient + run: | + python -m pip install --upgrade pip + python -m pip install -U pytest + python -m pip install -U . + - name: pytest + working-directory: ./src/rpcclient + run: | + python -m pytest --ci --local-machine diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml deleted file mode 100644 index 1f572779..00000000 --- a/.github/workflows/python-app.yml +++ /dev/null @@ -1,44 +0,0 @@ -# This workflow will install Python dependencies, run tests and lint with a single version of Python -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions - -name: Python application - -on: - pull_request: - branches: [ "master" ] - -jobs: - build: - if: '! github.event.pull_request.draft' - runs-on: ${{ matrix.os }} - - defaults: - run: - working-directory: ./src/rpcclient - - strategy: - matrix: - python-version: [ 3.8, 3.9, "3.10", 3.11, 3.12 ] - os: [ ubuntu-latest, macos-latest, windows-latest ] - - steps: - - uses: actions/checkout@v3 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - - name: Lint with flake8 - run: | - python -m pip install flake8 - flake8 . --max-complexity=14 --max-line-length=127 --statistics - - name: Verify sorted imports - run: | - python -m pip install isort - isort . -m HANGING_INDENT -l 120 --check-only - - name: Test install - run: | - python -m pip install --upgrade pip - python -m pip install -U . - - name: Test show usage - run: | - python -m rpcclient --help diff --git a/.github/workflows/server-app.yml b/.github/workflows/server-app.yml deleted file mode 100644 index df9fe62a..00000000 --- a/.github/workflows/server-app.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Server application - -on: - pull_request: - branches: [ "master" ] - -jobs: - build: - if: '! github.event.pull_request.draft' - runs-on: ${{ matrix.os }} - - defaults: - run: - working-directory: ./src/rpcserver - - strategy: - matrix: - include: - - os: macos-latest - arch: arm64 - - os: macos-latest - arch: x86_64 - - os: ubuntu-latest - arch: aarch64 - - os: ubuntu-latest - arch: i686 - - os: ubuntu-latest - arch: x86_64 - - steps: - - uses: actions/checkout@v3 - - name: Test make - run: | - make clean all