diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..786be57 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,19 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + commit-message: + prefix: ⬆️ + schedule: + interval: weekly + - package-ecosystem: pip + directory: / + commit-message: + prefix: ⬆️ + schedule: + interval: weekly diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml deleted file mode 100644 index d2a4857..0000000 --- a/.github/workflows/cd.yml +++ /dev/null @@ -1,117 +0,0 @@ -name: CD - -on: - push: - tags: - - "v[0-9]+.[0-9]+.[0-9]+*" - -jobs: - pre-commit: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3.3.0 - - name: Set up Python - uses: actions/setup-python@v4.5.0 - with: - python-version: "3.8" - - name: Make sure virtualevn>20 is installed, which will yield newer pip and possibility to pin pip version. - run: pip install "virtualenv>20" - - name: Install Tox - run: pip install tox - - name: Run pre-commit in Tox - run: tox -e pre-commit - - tests: - timeout-minutes: 30 - - strategy: - fail-fast: false - matrix: - include: - - python-version: "3.8" - lammps-version: "2020.12.24" - backend: django - - python-version: "3.8" - lammps-version: "2020.12.24" - backend: sqlalchemy - - python-version: "3.9" - lammps-version: "2020.12.24" - backend: django - - python-version: "3.10" - lammps-version: "2021.09.29" - backend: django - - runs-on: ubuntu-latest - - services: - postgres: - image: postgres:12 - env: - POSTGRES_DB: test_${{ matrix.backend }} - POSTGRES_PASSWORD: "" - POSTGRES_HOST_AUTH_METHOD: trust - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 - ports: - - 5432:5432 - rabbitmq: - image: rabbitmq:latest - ports: - - 5672:5672 - - steps: - - uses: actions/checkout@v3.3.0 - - - name: Setup conda - uses: s-weigand/setup-conda@v1.1.1 - with: - # update-conda: true - python-version: ${{ matrix.python-version }} - conda-channels: conda-forge - - - name: install lammps - run: conda install -y lammps==${{ matrix.lammps-version }} - - - name: Make sure virtualevn>20 is installed, which will yield newer pip and possibility to pin pip version. - run: pip install "virtualenv>20" - - name: Install Tox - run: pip install tox - - - name: Run pytest - run: | - tox -e ${{ matrix.python-version }}-aiida_lammps -- tests/ --cov=./aiida_lammps --cov-append --cov-report=xml --cov-report=term-missing - - - name: Upload to Codecov - if: matrix.python-version == 3.8 - uses: codecov/codecov-action@v3 - with: - token: ${{ secrets.CODECOV_TOKEN }} - name: pytests-lammps - flags: pytests - fail_ci_if_error: true - - publish: - name: Publish to PyPi - needs: [pre-commit, tests] - if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') - runs-on: ubuntu-latest - steps: - - name: Checkout source - uses: actions/checkout@v3.3.0 - - name: Set up Python 3.8 - uses: actions/setup-python@v4.5.0 - with: - python-version: "3.8" - - name: install flit - run: | - pip install flit~=3.4 - - name: Build and publish - run: | - flit publish - env: - FLIT_USERNAME: __token__ - FLIT_PASSWORD: ${{ secrets.PYPI_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 82050e2..e90287c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,27 +1,30 @@ name: CI -on: [push, pull_request] - +on: + push: + branches: [master] + tags: + - "v[0-9]+.[0-9]+.[0-9]+*" + pull_request: jobs: + pre-commit: + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3.3.0 - - name: Set up Python - uses: actions/setup-python@v4.5.0 - with: - python-version: "3.8" - - name: Make sure virtualevn>20 is installed, which will yield newer pip and possibility to pin pip version. - run: pip install "virtualenv>20" - - name: Install Tox - run: pip install tox - - name: Run pre-commit in Tox - run: tox -e pre-commit - + - uses: actions/checkout@v4 + - name: Set up Python 3.8 + uses: actions/setup-python@v4 + with: + python-version: "3.8" + - uses: pre-commit/action@v3.0.0 tests: + + name: pytest (Python ${{ matrix.python-version }}, LAMMPS ${{ matrix.lammps-version }}) + timeout-minutes: 30 strategy: @@ -94,3 +97,42 @@ jobs: name: pytests-lammps flags: pytests fail_ci_if_error: true + + # https://github.com/marketplace/actions/alls-green#why + check: # This job does nothing and is only used for the branch protection + + if: always() + + needs: + - pre-commit + - tests + + runs-on: ubuntu-latest + + steps: + - name: Decide whether the needed jobs succeeded or failed + uses: re-actors/alls-green@release/v1 + with: + jobs: ${{ toJSON(needs) }} + + publish: + name: Publish to PyPi + needs: [pre-commit, tests] + if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') + runs-on: ubuntu-latest + steps: + - name: Checkout source + uses: actions/checkout@v3.3.0 + - name: Set up Python 3.8 + uses: actions/setup-python@v4.5.0 + with: + python-version: "3.8" + - name: install flit + run: | + pip install flit~=3.4 + - name: Build and publish + run: | + flit publish + env: + FLIT_USERNAME: __token__ + FLIT_PASSWORD: ${{ secrets.PYPI_KEY }}