From cf955945d1e46d7c872e26a3ec9ae12cc6acc54a Mon Sep 17 00:00:00 2001 From: PascalEgn Date: Wed, 24 Jul 2024 16:04:22 +0200 Subject: [PATCH] actions: refactor actions --- .github/actions/run-tests/action.yml | 13 ---- .github/workflows/build-and-release.yml | 88 ----------------------- .github/workflows/publish.yml | 39 ++++++++++ .github/workflows/pull-request-master.yml | 13 ++++ .github/workflows/push-master.yml | 19 +++++ .github/workflows/test-python-2.yml | 41 +++++++++++ .github/workflows/test-python-3.yml | 47 ++++++++++++ 7 files changed, 159 insertions(+), 101 deletions(-) delete mode 100644 .github/actions/run-tests/action.yml delete mode 100644 .github/workflows/build-and-release.yml create mode 100644 .github/workflows/publish.yml create mode 100644 .github/workflows/pull-request-master.yml create mode 100644 .github/workflows/push-master.yml create mode 100644 .github/workflows/test-python-2.yml create mode 100644 .github/workflows/test-python-3.yml diff --git a/.github/actions/run-tests/action.yml b/.github/actions/run-tests/action.yml deleted file mode 100644 index 0095ab2..0000000 --- a/.github/actions/run-tests/action.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: Run tests -description: Run all required tests - -runs: - using: composite - steps: - - name: Run flake8 checks - shell: bash - run: flake8 inspire_json_merger tests - - - name: Run pytest - shell: bash - run: pytest tests/ diff --git a/.github/workflows/build-and-release.yml b/.github/workflows/build-and-release.yml deleted file mode 100644 index 95e2f3b..0000000 --- a/.github/workflows/build-and-release.yml +++ /dev/null @@ -1,88 +0,0 @@ -name: Build and release - -on: - push: - branches: [master] - pull_request: - branches: [master] - -jobs: - Test: - runs-on: ubuntu-20.04 - strategy: - matrix: - include: - - python: python3 - pip: pip3 - - python: python2 - pip: pip - - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - - name: Install python dependencies - run: | - ${{ matrix.pip }} install --user --upgrade pip - ${{ matrix.pip }} --no-cache-dir install --user setuptools wheel "urllib3==1.25.11" - ${{ matrix.pip }} --no-cache-dir install --user -r requirements.txt - - - name: Show python dependencies - run: | - ${{ matrix.python }} --version - ${{ matrix.pip }} freeze - - - name: Run tests - uses: ./.github/actions/run-tests - - - name: Coveralls - uses: AndreMiras/coveralls-python-action@v20201129 - with: - parallel: true - github-token: ${{ secrets.github_token }} - flag-name: run-${{ matrix.test_number }} - - Coveralls: - needs: Test - runs-on: ubuntu-latest - steps: - - name: Coveralls Finished - uses: AndreMiras/coveralls-python-action@v20201129 - with: - github-token: ${{ secrets.github_token }} - parallel-finished: true - - Release: - if: ${{ github.event_name == 'push' }} - needs: Test - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - - name: Set up Python 2.7 - uses: actions/setup-python@v4 - with: - python-version: 3.8 - - - name: Install python dependencies - run: | - python -m pip install --user --upgrade pip - pip --no-cache-dir install --user setuptools wheel "urllib3==1.25.11" - pip --no-cache-dir install --user -r requirements.txt - - - name: Build package - run: | - mkdir clean-build - python setup.py sdist bdist_wheel --universal --dist-dir ./clean-build - - - name: Publish package - uses: pypa/gh-action-pypi-publish@v1.3.1 - with: - user: __token__ - password: ${{ secrets.PYPI_PASSWORD }} - packages_dir: clean-build/ diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..b72104d --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,39 @@ +name: Publish to pypi + +on: + workflow_call: + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.11" + + - name: Install python dependencies + run: | + python -m pip install --upgrade pip + pip install setuptools wheel + pip install -e .[tests] + + - name: Show python dependencies + run: | + python3 --version + pip freeze + + - name: Build package + run: | + python setup.py sdist bdist_wheel + + - name: Publish package + uses: pypa/gh-action-pypi-publish@v1.9.0 + with: + user: __token__ + password: ${{ secrets.pypi_password }} diff --git a/.github/workflows/pull-request-master.yml b/.github/workflows/pull-request-master.yml new file mode 100644 index 0000000..656804b --- /dev/null +++ b/.github/workflows/pull-request-master.yml @@ -0,0 +1,13 @@ +name: Pull request master + +on: + pull_request: + branches: + - master + +jobs: + python2_tests: + uses: ./.github/workflows/test-python-2.yml + + python3_tests: + uses: ./.github/workflows/test-python-3.yml diff --git a/.github/workflows/push-master.yml b/.github/workflows/push-master.yml new file mode 100644 index 0000000..21d2219 --- /dev/null +++ b/.github/workflows/push-master.yml @@ -0,0 +1,19 @@ +name: Pull request master + +on: + push: + branches: + - master + +jobs: + python2_tests: + uses: ./.github/workflows/test-python-2.yml + + python3_tests: + uses: ./.github/workflows/test-python-3.yml + + bump_version: + needs: [python2_tests, python3_tests] + uses: ./.github/workflows/publish.yml + secrets: inherit + diff --git a/.github/workflows/test-python-2.yml b/.github/workflows/test-python-2.yml new file mode 100644 index 0000000..d220611 --- /dev/null +++ b/.github/workflows/test-python-2.yml @@ -0,0 +1,41 @@ +name: Test Python 2 + +on: + workflow_call: + +jobs: + test: + runs-on: ubuntu-20.04 + strategy: + matrix: + include: + - python: python2 + pip: pip + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + python-version: ${{ matrix.python-version }} + fetch-depth: 0 + + - name: Install python dependencies + run: | + wget https://bootstrap.pypa.io/pip/2.7/get-pip.py + ${{ matrix.python }} get-pip.py + ${{ matrix.python }} -m ${{ matrix.pip }} install --user --upgrade pip + ${{ matrix.python }} -m ${{ matrix.pip }} --no-cache-dir install --user setuptools wheel "urllib3==1.25.11" + ${{ matrix.python }} -m ${{ matrix.pip }} --no-cache-dir install git+https://github.com/inspirehep/dictdiffer.git#egg=dictdiffer + ${{ matrix.python }} -m ${{ matrix.pip }} --no-cache-dir install --user -e .[tests] + + - name: Show python dependencies + run: | + ${{ matrix.python }} --version + ${{ matrix.pip }} freeze + + - name: Run flake8 checks + shell: bash + run: flake8 inspire_json_merger tests + + - name: Run tests + run: | + ./run-tests.sh diff --git a/.github/workflows/test-python-3.yml b/.github/workflows/test-python-3.yml new file mode 100644 index 0000000..4e40217 --- /dev/null +++ b/.github/workflows/test-python-3.yml @@ -0,0 +1,47 @@ +name: Test Python 3 + +on: + workflow_call: + +jobs: + test: + runs-on: ubuntu-latest + continue-on-error: ${{ matrix.experimental }} + strategy: + fail-fast: true + matrix: + python-version: ["3.9", "3.10", "3.11"] + experimental: [false] + include: + - python-version: "3.x" + check-latest: true + experimental: true + + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install setuptools + pip install -e .[tests] + + - name: Show python dependencies + run: | + python3 --version + pip freeze + + - name: Run flake8 checks + shell: bash + run: flake8 inspire_json_merger tests + + - name: Run tests + run: | + ./run-tests.sh