Skip to content

Commit

Permalink
Add Python 3.11-based image
Browse files Browse the repository at this point in the history
  • Loading branch information
berquist committed Jul 4, 2023
1 parent 5b031c7 commit 0d79330
Show file tree
Hide file tree
Showing 5 changed files with 131 additions and 0 deletions.
59 changes: 59 additions & 0 deletions .github/workflows/py311.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: py311img

on:
push:
branches:
- 'main'
schedule:
- cron: '0 11 * * 2'
pull_request:
branches:
- 'main'

jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Gather metadata
id: meta
uses: docker/metadata-action@v4
with:
images: |
shivupa/cclib-ci
flavor: |
latest=true
tags: |
type=schedule,pattern={{date 'YYYYMMDD'}},prefix=py311-
type=sha,prefix=py311-
type=edge,prefix=py311-
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Build and export to Docker
uses: docker/build-push-action@v3
with:
context: py311
push: false
load: true
tags: ${{ steps.meta.outputs.tags }}
-
name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v3
with:
context: py311
push: ${{ github.event_name != 'pull_request'}}
tags: ${{ steps.meta.outputs.tags }}
39 changes: 39 additions & 0 deletions py311/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
FROM condaforge/mambaforge:22.9.0-2@sha256:a508942c46f370f2bebd94801d6094d0d5be77c4f36ad0edd608b118998fbca8 as install

LABEL org.opencontainers.image.authors="Shiv Upadhyay <shivnupadhyay@gmail.com>, Eric Berquist <eric.berquist@gmail.com>"

SHELL ["/bin/bash", "-l", "-i", "-c"]
ENV SHELL /bin/bash

ENV HOME /root
WORKDIR "$HOME"

COPY ./condarc "$HOME"/.condarc
COPY ./environment.yml .

RUN mamba info -a
RUN --mount=type=cache,target=/opt/conda/pkgs mamba env create --file="$HOME"/environment.yml --name=cclib

RUN apt-get update && \
apt-get install -y -qq --no-install-recommends \
build-essential \
curl \
gcc \
git \
swig \
&& rm -rf /var/lib/apt/lists/*
RUN mamba init && \
echo "mamba activate cclib" >> "$HOME"/.bashrc && \
curl -o requirements.txt \
https://raw.githubusercontent.com/cclib/cclib/master/requirements.txt && \
mamba run -n cclib python -m pip install --no-cache-dir -r requirements.txt

FROM install as test

SHELL ["/bin/bash", "-l", "-i", "-c"]
WORKDIR "$HOME"
RUN git clone https://github.com/cclib/cclib.git
WORKDIR "$HOME"/cclib
COPY test.bash .
RUN ./test.bash
WORKDIR "$HOME"
7 changes: 7 additions & 0 deletions py311/condarc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# -*- mode: yaml -*-
always_yes: true
changeps1: false
channel_priority: flexible
quiet: false
report_errors: true
verbosity: 1
17 changes: 17 additions & 0 deletions py311/environment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
channels:
- psi4
- conda-forge
- defaults
dependencies:
- cython # only needed for pyquante2
- h5py
- openbabel
- pip
- psi4
- pytest-cov
- pytest-shutil
- python=3.11
- pip:
- pyscf
- qc-iodata
9 changes: 9 additions & 0 deletions py311/test.bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/usr/bin/env -S bash --login

set -euo pipefail
set -x

bash ./.github/scripts/run_pytest.bash
bash ./.github/scripts/run_pytest_methods.bash

set +x

0 comments on commit 0d79330

Please sign in to comment.