Commit 54c46fa2 authored by McDonnell, Marshall's avatar McDonnell, Marshall
Browse files

Initial commit after new repo setup

parents
Loading
Loading
Loading
Loading
Loading

.gitlab-ci.yml

0 → 100644
+74 −0
Original line number Diff line number Diff line
variables:
  GIT_STRATEGY: clone
  CONTAINER_IMAGE_URL: "${ASRP_CONTAINER_IMAGE_REPOSITORY}"

# This import is for the func_rse_docker_* functions
before_script:
  - curl https://code.ornl.gov/rse-deployment/rse-sharables/raw/master/rse-bash-modules.sh -O
  - docker login -u ${ASRP_CONTAINER_IMAGE_USER} -p ${ASRP_CONTAINER_IMAGE_PASSWORD} ${ASRP_CONTAINER_IMAGE_REPOSITORY}
  - source rse-bash-modules.sh
  - func_rse_docker_cleanup

after_script:
  - curl https://code.ornl.gov/rse-deployment/rse-sharables/raw/master/rse-bash-modules.sh -O
  - source rse-bash-modules.sh
  - func_rse_docker_cleanup
  - sudo chown -R gitlab-runner .

.test_docker_job:
  stage: test
  variables:
    PROJECT: project
    NAME: name
    TEST_COMMAND: test # must be a single value string ("pytest"), not multi-values in single string ("pytest --cov=.")
  script:
    - cd ${PROJECT}/${NAME}
    - docker build -f Dockerfile -t image .
    - docker run --entrypoint=${TEST_COMMAND} image
  tags:
    - rse-multi-builder




.build_docker_job:
  stage: build
  variables:
    PROJECT: project
    NAME: name
    TAG: "0.1"
    FORCE_TAGS: "false"
  when: manual
  script:
    - cd ${PROJECT}/${NAME}
    - docker build -f Dockerfile --target devel -t image_devel . || true
    - docker build -f Dockerfile -t image .
    - IMAGE_NAME=${CONTAINER_IMAGE_URL}/${PROJECT}/${NAME}
    - docker tag image ${IMAGE_NAME}:$CI_COMMIT_SHORT_SHA
    - docker push ${IMAGE_NAME}:$CI_COMMIT_SHORT_SHA
    - >
      if [ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ] || [ "$FORCE_TAGS" == "true" ]; then
        docker tag image ${IMAGE_NAME}:latest
        docker push ${IMAGE_NAME}:latest
        docker pull ${IMAGE_NAME}:${TAG} || docker tag image ${IMAGE_NAME}:${TAG} &&  docker push ${IMAGE_NAME}:${TAG}
      fi
  tags:
    - rse-multi-builder


test-asrp-gsas2-refinement:
  extends: .test_docker_job
  variables:
    PROJECT: asrp
    NAME: gsas2_refinement
    TEST_COMMAND: pytest


build-asrp-gsas2-refinement:
  extends: .build_docker_job
  needs: [test-asrp-gsas2-refinement]
  variables:
    PROJECT: asrp
    NAME: gsas2_refinement
    TAG: "0.8"

Dockerfile

0 → 100644
+16 −0
Original line number Diff line number Diff line
ARG GSAS2_VERSION=v5.5.2
FROM savannah.ornl.gov/rse/gsas2:${GSAS2_VERSION} AS base

#WORKDIR /app

#--------------------------#
FROM base AS production
COPY . .
RUN pixi run python -m pip install .

# Creates input (./inputs) and output (./portal) directories accessible by all
RUN mkdir -p ./portal \
    && mkdir -p ./inputs \
    && chmod -R 777 ./portal ./inputs

CMD [ "pixi", "run", "python", "-m", "gsas2_refinement.gsas2_refinement" ]

README.md

0 → 100644
+40 −0
Original line number Diff line number Diff line
# ASRP's GSAS2 Refinement Tool

ASRP repo: https://code.ornl.gov/neutrons/asrp

# Developers

### Using Docker

This uses the RSE shared docker image for GSAS2 found in [this repo][rse_gsas2_image]

Build the image
```
docker login code.ornl.gov:4567
docker build -t asrp-gsas2-refinement .
```

# Usage

Test:
```
docker run --entrypoint="" asrp-gsas2-refinement pytest
```

To run (use your parameters):
```
docker run \
    -v /path/to/input/structure:/refinement/input.cif \
    -v /path/to/input/gsas_file:/refinement/input.gsa \
    -v /path/to/input/instrument_parametes:/refinement/input.instprm \
    -v /path/to/output/folder:/app/portal \
    asrp-gsas2-refinement \
        --cif-filename /refinement/input.cif \
        --gsas-filename /refinement/input.gsa \
        --instrument-params-filename /refinement/input.instprm \
        --scatter-type N \
        --bank-id 5 \
        --xmin 5000.0 \
        --xmax 15000.0
```
[rse_gsas2_image]: https://code.ornl.gov/rse/images/gsas2

pyproject.toml

0 → 100644
+12 −0
Original line number Diff line number Diff line
[project]
name = "gsas2-refinement"
version = "0.1.0"
description = "GSAS2 Refinement Application for ASRP"
authors = [
  { name="Marshall McDonnell", email="mcdonnellmt@ornl.gov" },
]

[tool.pytest.ini_options]
pythonpath = [
  "src", "src/gsas2_refinement"
]
+0 −0

Empty file added.