diff --git a/.github/workflows/before-job/action.yml b/.github/workflows/before-job/action.yml deleted file mode 100644 index 5f94490..0000000 --- a/.github/workflows/before-job/action.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: "Before job script" -description: "Set up a python dev environment." -runs: - using: "composite" - steps: - - run: python -V - shell: bash - - run: pip install virtualenv - shell: bash - - run: virtualenv venv - shell: bash - - run: source venv/bin/activate || source venv/Scripts/activate - shell: bash diff --git a/.github/workflows/build-job/action.yml b/.github/workflows/build-job/action.yml deleted file mode 100644 index 40699c3..0000000 --- a/.github/workflows/build-job/action.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: "Build job" -description: "Build the package." -runs: - using: "composite" - steps: - - run: pip install wheel - shell: bash - - run: python -m build - shell: bash diff --git a/.github/workflows/docs-job/action.yml b/.github/workflows/docs-job/action.yml deleted file mode 100644 index 68a3b18..0000000 --- a/.github/workflows/docs-job/action.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: "Docs build job" -description: "Build the documentation." -runs: - using: "composite" - steps: - - run: sphinx-apidoc -o docs/source/apidoc src/dgpost -T -M -E -f -e --templatedir=docs/apidoc_t - shell: bash - - run: sphinx-build -b html docs/source public/master - shell: bash diff --git a/.github/workflows/lint-every-pr.yml b/.github/workflows/lint-every-pr.yml new file mode 100644 index 0000000..efb579d --- /dev/null +++ b/.github/workflows/lint-every-pr.yml @@ -0,0 +1,14 @@ +name: lint-every-pr +on: + pull_request: + branches: + - main +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: chartboost/ruff-action@v1 + - uses: chartboost/ruff-action@v1 + with: + args: "format --check" \ No newline at end of file diff --git a/.github/workflows/pull-request-commit.yml b/.github/workflows/pull-request-commit.yml index 7643c9b..3a05f98 100644 --- a/.github/workflows/pull-request-commit.yml +++ b/.github/workflows/pull-request-commit.yml @@ -1,77 +1,36 @@ name: pull-request-commit on: - pull_request: - branches: - - master + pull_request: + branches: ['main'] jobs: - build: - strategy: - matrix: - pyver: ['3.9', '3.10'] - os: ['ubuntu-latest', 'windows-latest'] - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.pyver }} - - uses: ./.github/workflows/before-job - - uses: ./.github/workflows/build-job - - uses: actions/upload-artifact@v2 - with: - name: dist-${{ matrix.os }}-${{ matrix.pyver }} - path: dist - test: - needs: [build] - strategy: - matrix: - pyver: ['3.9', '3.10'] - os: ['ubuntu-latest', 'windows-latest'] - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.pyver }} - - uses: ./.github/workflows/before-job - - uses: actions/download-artifact@v2 - with: - name: dist-${{ matrix.os }}-${{ matrix.pyver }} - - uses: jannekem/run-python-script-action@v1 - with: - script: | - import os - import subprocess - fn = [f for f in os.listdir() if f.endswith('whl') and f.startswith('dgpost')][0] - subprocess.run(["pip", "install", f"{fn}[testing]"]) - - uses: ./.github/workflows/test-job - pages: - needs: [build] - strategy: - matrix: - pyver: ['3.9'] - os: ['ubuntu-latest'] - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.pyver }} - - uses: ./.github/workflows/before-job - - uses: actions/download-artifact@v2 - with: - name: dist-${{ matrix.os }}-${{ matrix.pyver }} - - uses: jannekem/run-python-script-action@v1 - with: - script: | - import os - import subprocess - fn = [f for f in os.listdir() if f.endswith('whl') and f.startswith('dgpost')][0] - subprocess.run(["pip", "install", f"{fn}[docs]"]) - - uses: ./.github/workflows/docs-job - - uses: actions/upload-artifact@v2 - with: - name: public-${{ matrix.os }}-${{ matrix.pyver }} - path: public \ No newline at end of file + build: + strategy: + matrix: + pyver: ['3.9', '3.10', '3.11', '3.12'] + os: ['ubuntu-latest'] + include: + - pyver: '3.9' + os: 'windows-latest' + uses: ./.github/workflows/workflow-build.yml + with: + pyver: ${{ matrix.pyver }} + os: ${{ matrix.os }} + test: + needs: [build] + strategy: + matrix: + pyver: ['3.9', '3.10', '3.11', '3.12'] + os: ['ubuntu-latest'] + include: + - pyver: '3.9' + os: 'windows-latest' + uses: ./.github/workflows/workflow-test.yml + with: + pyver: ${{ matrix.pyver }} + os: ${{ matrix.os }} + pages: + needs: [build] + uses: ./.github/workflows/workflow-pages.yml + with: + pyver: '3.9' + os: ubuntu-latest diff --git a/.github/workflows/push-main.yml b/.github/workflows/push-main.yml new file mode 100644 index 0000000..c97040e --- /dev/null +++ b/.github/workflows/push-main.yml @@ -0,0 +1,39 @@ +name: push-main +on: + push: + branches: ['main'] +jobs: + build: + uses: ./.github/workflows/workflow-build.yml + with: + pyver: '3.9' + os: 'ubuntu-latest' + test: + needs: [build] + uses: ./.github/workflows/workflow-test.yml + with: + pyver: '3.9' + os: 'ubuntu-latest' + pages: + needs: [build] + uses: ./.github/workflows/workflow-pages.yml + with: + pyver: '3.9' + os: ubuntu-latest + deploy: + needs: [pages] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.9' + - uses: actions/download-artifact@v4 + with: + name: public-ubuntu-latest-3.9 + path: public/main + - uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./public + keep_files: true diff --git a/.github/workflows/push-master.yml b/.github/workflows/push-master.yml deleted file mode 100644 index b88d8a0..0000000 --- a/.github/workflows/push-master.yml +++ /dev/null @@ -1,83 +0,0 @@ -name: push-master -on: - push: - branches: ['master'] -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - uses: actions/setup-python@v2 - with: - python-version: '3.9' - - uses: ./.github/workflows/before-job - - uses: ./.github/workflows/build-job - - uses: actions/upload-artifact@v2 - with: - name: dist-master - path: dist - test: - needs: [build] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - uses: actions/setup-python@v2 - with: - python-version: '3.9' - - uses: ./.github/workflows/before-job - - uses: actions/download-artifact@v2 - with: - name: dist-master - - uses: jannekem/run-python-script-action@v1 - with: - script: | - import os - import subprocess - fn = [f for f in os.listdir() if f.endswith('whl') and f.startswith('dgpost')][0] - subprocess.run(["pip", "install", f"{fn}[testing]"]) - - uses: ./.github/workflows/test-job - pages: - needs: [build] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 - with: - python-version: '3.9' - - uses: ./.github/workflows/before-job - - uses: actions/download-artifact@v2 - with: - name: dist-master - - uses: jannekem/run-python-script-action@v1 - with: - script: | - import os - import subprocess - fn = [f for f in os.listdir() if f.endswith('whl') and f.startswith('dgpost')][0] - subprocess.run(["pip", "install", f"{fn}[docs]"]) - - uses: ./.github/workflows/docs-job - - uses: actions/upload-artifact@v2 - with: - name: public-master - path: public/master - deploy: - needs: [pages] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 - with: - python-version: '3.9' - - uses: actions/download-artifact@v2 - with: - name: public-master - path: public/master - - uses: peaceiris/actions-gh-pages@v3 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./public - keep_files: true diff --git a/.github/workflows/test-job/action.yml b/.github/workflows/test-job/action.yml deleted file mode 100644 index 79e4a06..0000000 --- a/.github/workflows/test-job/action.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: "Test job" -description: "Test the package with pytest." -runs: - using: "composite" - steps: - - run: dgpost --version - shell: bash - - run: pytest -vv - shell: bash diff --git a/.github/workflows/workflow-build.yml b/.github/workflows/workflow-build.yml new file mode 100644 index 0000000..fee6721 --- /dev/null +++ b/.github/workflows/workflow-build.yml @@ -0,0 +1,35 @@ +--- +name: Build dgpost +on: + workflow_call: + inputs: + os: + required: true + type: string + pyver: + required: true + type: string + +jobs: + build: + runs-on: ${{ inputs.os }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: actions/setup-python@v5 + with: + python-version: ${{ inputs.pyver }} + - name: Install dependencies + shell: bash + run: | + python -m pip install --upgrade pip + pip install -U setuptools build + - name: Build dgpost + shell: bash + run: | + python -m build + - uses: actions/upload-artifact@v4 + with: + name: dist-${{ inputs.os }}-${{ inputs.pyver }} + path: dist \ No newline at end of file diff --git a/.github/workflows/workflow-pages.yml b/.github/workflows/workflow-pages.yml new file mode 100644 index 0000000..44d781b --- /dev/null +++ b/.github/workflows/workflow-pages.yml @@ -0,0 +1,39 @@ +--- +name: Build dgpost docs +on: + workflow_call: + inputs: + os: + required: true + type: string + pyver: + required: true + type: string + +jobs: + pages: + runs-on: ${{ inputs.os }} + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: ${{ inputs.pyver }} + - uses: actions/download-artifact@v4 + with: + name: dist-${{ inputs.os }}-${{ inputs.pyver }} + - uses: jannekem/run-python-script-action@v1 + with: + script: | + import os + import subprocess + fn = [f for f in os.listdir() if f.endswith('whl') and f.startswith('dgpost')][0] + subprocess.run(["pip", "install", f"{fn}[docs]"]) + - name: Build the docs + shell: bash + run: | + sphinx-apidoc -o docs/source/apidoc src/dgpost -T -M -E -f -e --templatedir=docs/apidoc_t + sphinx-build -b html docs/source public/main + - uses: actions/upload-artifact@v4 + with: + name: public-${{ inputs.os }}-${{ inputs.pyver }} + path: public/main diff --git a/.github/workflows/workflow-test.yml b/.github/workflows/workflow-test.yml new file mode 100644 index 0000000..82f9f71 --- /dev/null +++ b/.github/workflows/workflow-test.yml @@ -0,0 +1,36 @@ +--- +name: Test dgpost +on: + workflow_call: + inputs: + os: + required: true + type: string + pyver: + required: true + type: string + +jobs: + test: + runs-on: ${{ inputs.os }} + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: ${{ inputs.pyver }} + - uses: actions/download-artifact@v4 + with: + name: dist-${{ inputs.os }}-${{ inputs.pyver }} + - uses: jannekem/run-python-script-action@v1 + with: + script: | + import os + import subprocess + fn = [f for f in os.listdir() if f.endswith('whl') and f.startswith('dgpost')][0] + subprocess.run(["pip", "install", f"{fn}[testing]"]) + - name: Print dgpost version + shell: bash + run: yadg --version + - name: Run pytest + shell: bash + run: pytest -vv