Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Splitting up CI matrix for pip llnl #192

Merged
merged 47 commits into from
Aug 4, 2023
Merged
Changes from 34 commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
dbbd338
Attempting to split setup jobs
MishaZakharchanka May 8, 2023
cf9d011
Extending/fixing/simplifying test jobs
MishaZakharchanka May 8, 2023
986a957
More abstraction
MishaZakharchanka May 8, 2023
1ea8f7a
Trying to fix unknown key error
MishaZakharchanka May 8, 2023
3ec1f57
Trying to fix variable syntax
MishaZakharchanka May 8, 2023
befc8e1
Fixing syntax issues
MishaZakharchanka May 8, 2023
ae17056
Moving variables under correct key
MishaZakharchanka May 8, 2023
7a71b94
Adding cleanup
MishaZakharchanka May 8, 2023
a4b8565
Missed an extend
MishaZakharchanka May 8, 2023
a2b2416
getting rid of job_tag abstraction
MishaZakharchanka May 8, 2023
4e81b37
Turning variable into string
MishaZakharchanka May 8, 2023
b402a3e
Removing a layer of abstraction that might not be necessary
MishaZakharchanka May 8, 2023
d1c34ff
Trying to solve permissions error on build
MishaZakharchanka May 8, 2023
732edac
Adding Runner type var back to try and solve perm error
MishaZakharchanka May 8, 2023
989e1bd
Removing some of the abstraction because of needed vars
MishaZakharchanka May 9, 2023
0c578f7
Adding var back to setup, using hidden jobs again
MishaZakharchanka May 9, 2023
bb05ab7
replacing hyphens with underscores
MishaZakharchanka May 9, 2023
2700676
Adding ruby back
MishaZakharchanka May 10, 2023
e2c07fc
chlarifying job names
MishaZakharchanka May 10, 2023
f4014ec
Organization and comments
MishaZakharchanka May 10, 2023
bfff359
Comments on possible changes
MishaZakharchanka May 15, 2023
7bff194
clean up for merge
MishaZakharchanka May 17, 2023
91fb1dd
Adding lassen back
MishaZakharchanka May 17, 2023
a764432
Trying two runner type tags
MishaZakharchanka May 18, 2023
9d98a19
Fixing lassen variables and reverting RUNNER_TYPE change
MishaZakharchanka May 22, 2023
41d0829
Moving lassen environment var to test job
MishaZakharchanka May 22, 2023
25f5e9b
Adding finalize back, using it in env_setup and build
MishaZakharchanka May 22, 2023
7385295
Moving finalize script
MishaZakharchanka May 23, 2023
ec877b4
Changing runner tag, b/c machine updates
MishaZakharchanka Jun 1, 2023
4c1c4a4
Specifying lsf RUNNER_TYPE for lassen
MishaZakharchanka Jun 2, 2023
dfe87aa
Trying bto revert to batch runner type
MishaZakharchanka Jun 5, 2023
36ca978
Moving Ruby back to batch
MishaZakharchanka Jun 6, 2023
57e74ee
Merge branch 'master' into refactor/llnl-ci-pip
MishaZakharchanka Jun 7, 2023
3872427
Changing last runner tag back to batch
MishaZakharchanka Jun 12, 2023
aee3fd2
Adding cleanup back
MishaZakharchanka Jun 15, 2023
0c3b66a
starting CI again
MishaZakharchanka Jun 21, 2023
c24b760
checking pip version
MishaZakharchanka Jun 22, 2023
934dd86
adding version requirements, and removing debugging prints
MishaZakharchanka Jun 23, 2023
98982ca
Trying a different gcc
MishaZakharchanka Jul 6, 2023
d93882c
Looking into what versions of gcc the different systems are using
MishaZakharchanka Jul 6, 2023
7867ab6
Trying clang for lassen CI
MishaZakharchanka Jul 7, 2023
8aaa000
Adding newer python module
MishaZakharchanka Jul 7, 2023
02cc2a5
Removing Lassen CI attempted fixes
MishaZakharchanka Jul 31, 2023
d46b436
Adding clean up job for quartz
MishaZakharchanka Jul 31, 2023
e49bbda
Trying cleanup on Lassen instead of quartz
MishaZakharchanka Aug 3, 2023
8e14991
ci-pip: fixed dependencies on Lassen
mtitov Aug 4, 2023
0acf5fb
ci-conda: synced with pip-pipeline
mtitov Aug 4, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
162 changes: 82 additions & 80 deletions .gitlab/llnl-ci-pip.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,83 +9,53 @@ stages:
- test
- cleanup

### MACHINES
.on_quartz:
variables:
HOST: "quartz"
VENV_ENV_NAME: "quartz-env"

.on_ruby:
variables:
HOST: "ruby"
VENV_ENV_NAME: "ruby-env"

.on_lassen:
variables:
HOST: "lassen"
VENV_ENV_NAME: "lassen-env"

### SCRIPTS
.final_steps:
script: &finalize
- chgrp -fR exaworks ${PIP_WORK_DIR} || true
- chmod -fR 02770 ${PIP_WORK_DIR} || true

pip-env-setup:
stage: setup
parallel:
matrix:
- HOST : [ "quartz" ]
VENV_ENV_NAME: [ "quartz-env" ]
RUNNER_TYPE: "shell"
- HOST : [ "ruby" ]
VENV_ENV_NAME: [ "ruby-env" ]
RUNNER_TYPE: "shell"
# - HOST : [ "lassen" ]
# ENVIRONMENT: [ "BATCH" ]
# VENV_ENV_NAME: [ "lassen-env" ]
# RUNNER_TYPE: "batch"
.job_tags:
tags:
- $HOST
- $RUNNER_TYPE

.pip_env_setup:
stage: setup
script:
- mkdir -p ${PIP_WORK_DIR}
- test -d ${PIP_WORK_DIR}/${VENV_ENV_NAME} && exit 0
- python3 -m venv ${PIP_WORK_DIR}/${VENV_ENV_NAME}
- source ${PIP_WORK_DIR}/${VENV_ENV_NAME}/bin/activate
- pip install -U pip setuptools wheel
- pip cache purge
- *finalize

pip-build:
.pip_build:
stage: build
needs:
- job: pip-env-setup
parallel:
matrix:
- HOST : [ "quartz" ]
VENV_ENV_NAME: [ "quartz-env" ]
RUNNER_TYPE: "shell"
- HOST : [ "ruby" ]
VENV_ENV_NAME: [ "ruby-env" ]
RUNNER_TYPE: "shell"
# - HOST : [ "lassen" ]
# ENVIRONMENT: [ "BATCH" ]
# VENV_ENV_NAME: [ "lassen-env" ]
# RUNNER_TYPE: "batch"
tags:
- $HOST
- $RUNNER_TYPE
script:
- source ${PIP_WORK_DIR}/${VENV_ENV_NAME}/bin/activate
- pip install --no-cache-dir -r ${PIP_REQUIREMENTS}
- *finalize

pip-tests:
.pip_test:
stage: test
needs:
- job: pip-build
parallel:
matrix:
- HOST : [ "quartz" ]
VENV_ENV_NAME: [ "quartz-env" ]
RUNNER_TYPE: "batch"
LLNL_SLURM_SCHEDULER_PARAMETERS: [ "--nodes=1 -t 30" ]
- HOST : [ "ruby" ]
VENV_ENV_NAME: [ "ruby-env" ]
RUNNER_TYPE: "batch"
LLNL_SLURM_SCHEDULER_PARAMETERS: [ "--nodes=1 -t 30" ]
# - HOST : [ "lassen" ]
# ENVIRONMENT: [ "BATCH" ]
# VENV_ENV_NAME: [ "lassen-env" ]
# RUNNER_TYPE: "batch"
# LLNL_LSF_SCHEDULER_PARAMETERS: [ "-nnodes 1 -W 30" ]
# LSB_JOB_STARTER: [ "ENVIRONMENT=BATCH /usr/tcetmp/bin/bsub_job_starter %USRCMD" ]
tags:
- $HOST
- $RUNNER_TYPE
script:
- source ${PIP_WORK_DIR}/${VENV_ENV_NAME}/bin/activate
- export run_id=${CI_PIPELINE_ID}
Expand All @@ -102,30 +72,62 @@ pip-tests:
- python3 ci/tests/test.py -e
- deactivate

.pip-env-cleanup: &pip-env-cleanup
stage: cleanup
tags:
- ruby
- shell
script:
- source ${PIP_WORK_DIR}/ruby-env/bin/activate
- pip cache purge
- *finalize
### JOBS
# QUARTZ
pip_setup_quartz:
variables:
RUNNER_TYPE: "shell"
extends: [.on_quartz, .job_tags, .pip_env_setup]

pip_build_quartz:
variables:
RUNNER_TYPE: "shell"
needs: [pip_setup_quartz]
extends: [.on_quartz, .job_tags, .pip_build]

pip_test_quartz:
variables:
RUNNER_TYPE: "batch"
LLNL_SLURM_SCHEDULER_PARAMETERS: "--nodes=1 -t 30"
needs: [pip_build_quartz]
extends: [.on_quartz, .job_tags, .pip_test]

# RUBY
pip_setup_ruby:
variables:
RUNNER_TYPE: "shell"
extends: [.on_ruby, .job_tags, .pip_env_setup]

pip_build_ruby:
variables:
RUNNER_TYPE: "shell"
needs: [pip_setup_ruby]
extends: [.on_ruby, .job_tags, .pip_build]

pip_test_ruby:
variables:
RUNNER_TYPE: "batch"
LLNL_SLURM_SCHEDULER_PARAMETERS: "--nodes=1 -t 30"
needs: [pip_build_ruby]
extends: [.on_ruby, .job_tags, .pip_test]

# LASSEN
pip_setup_lassen:
variables:
RUNNER_TYPE: "shell"
extends: [.on_lassen, .job_tags, .pip_env_setup]

pip_build_lassen:
variables:
RUNNER_TYPE: "shell"
needs: [pip_setup_lassen]
extends: [.on_lassen, .job_tags, .pip_build]

pip-cleanup-on-build-failure:
needs:
- job: pip-build
when: on_failure
<<: *pip-env-cleanup

pip-cleanup-on-test-failure:
needs:
- job: pip-tests
when: on_failure
<<: *pip-env-cleanup

pip-cleanup-on-success:
needs:
- job: pip-tests
when: on_success
<<: *pip-env-cleanup
pip_test_lassen:
variables:
RUNNER_TYPE: "batch"
LLNL_LSF_SCHEDULER_PARAMETERS: "-nnodes 1 -W 30"
LSB_JOB_STARTER: "ENVIRONMENT=BATCH /usr/tcetmp/bin/bsub_job_starter %USRCMD"
EVIRONMENT: "BATCH"
needs: [pip_build_lassen]
extends: [.on_lassen, .job_tags, .pip_test]