Skip to content

Commit

Permalink
updated workflow files
Browse files Browse the repository at this point in the history
  • Loading branch information
ersilia-bot committed Apr 15, 2024
1 parent 6e89a6b commit f6c0fd1
Show file tree
Hide file tree
Showing 2 changed files with 101 additions and 32 deletions.
27 changes: 27 additions & 0 deletions .github/scripts/verify_model_outcome.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import csv

def check_non_null_outcomes_in_output_csv(csv_file_path):
with open(csv_file_path, 'r') as csv_file:
csv_reader = csv.reader(csv_file)
header = next(csv_reader)
row = next(csv_reader)
for val in row[2:]: # Skip the first two columns (Inchikey and input)
if val not in ['', None]:
return False
return True

if __name__ == '__main__':
# Read file path from command line
import sys
if len(sys.argv) < 2:
print('Usage: python verify_model_output.py <output_csv_file>')
exit(1)

output_csv_file = sys.argv[1]

if check_non_null_outcomes_in_output_csv(output_csv_file):
# If there are null outcomes, exit with status code 1
print('All outcomes are null')
else:
print('Some outcomes are not null')

106 changes: 74 additions & 32 deletions .github/workflows/upload-model-to-dockerhub.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ jobs:
steps:
# https://github.com/docker/setup-qemu-action
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
uses: docker/setup-qemu-action@v3

# https://github.com/docker/setup-buildx-action
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v3

# log in to dockerhub
- name: Login to Docker Hub
Expand All @@ -35,7 +35,22 @@ jobs:
persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal token
fetch-depth: 0 # otherwise, you will failed to push refs to dest repo
lfs: 'true'

- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# if set to "true" but frees about 6 GB
tool-cache: true

# all of these default to true, but feel free to set to
# "false" if necessary for your workflow
android: true
dotnet: true
haskell: true
large-packages: true
swap-storage: true

- name: Generate the Dockerfile
id: generate-dockerfile
env:
Expand All @@ -44,11 +59,64 @@ jobs:
wget https://raw.githubusercontent.com/ersilia-os/ersilia/master/.github/scripts/place_a_dockerfile_in_current_eos_repo.py
python -m pip install requests
python place_a_dockerfile_in_current_eos_repo.py $REPO_NAME
# We cannot tag it as anything other than latest because
# ersilia cli only looks for the 'latest' tag
- name: Build only AMD64 Image for Testing
id: buildForTest
uses: docker/build-push-action@v5
with:
context: .
load: true
tags: ersiliaos/${{ github.event.repository.name }}:latest

- name: Add conda to system path
run: echo $CONDA/bin >> $GITHUB_PATH

- name: Source conda
run: source $CONDA/etc/profile.d/conda.sh

- name: Set Python to 3.10.10
run:
conda install -y python=3.10.10

- name: Install dependencies
run: |
source activate
conda init
conda install git-lfs -c conda-forge
git-lfs install
conda install gh -c conda-forge
- name: Install ersilia
run: |
source activate
python --version
echo "After conda init"
conda init
python -m pip install git+https://github.com/ersilia-os/ersilia.git
# TODO This is very hacky, maybe we want to use the ersilia test command in the future for this
- name: Test Built Image
id: testBuiltImage
run: |
ersilia -v fetch ${{ github.event.repository.name }} --from_dockerhub
ersilia -v serve ${{ github.event.repository.name }}
ersilia -v run -i "CCCC" -o "output.csv"
ersilia close
output=$(python .github/scripts/verify_model_outcome.py output.csv)
if echo "$output" | grep -q "All outcomes are null"; then
echo "Error in model outcome, aborting build"
exit 1
fi
env:
PULL_IMAGE: n

- name: Build and push
id: buildMultiple
continue-on-error: true
uses: docker/build-push-action@v2
uses: docker/build-push-action@v5
timeout-minutes: 45
with:
context: .
platforms: linux/amd64,linux/arm64
Expand All @@ -69,15 +137,15 @@ jobs:
- name: Build only for Linux/amd64
id: buildSingle
if: steps.buildCheck.outputs.failed == 'true'
uses: docker/build-push-action@v2
uses: docker/build-push-action@v5
with:
context: .
platforms: linux/amd64
push: ${{ github.event_name != 'pull_request' }}
tags: ersiliaos/${{ github.event.repository.name }}:latest

- name: Update Metadata JSON file with DockerHub info
id: UpdateMetadata
id: updateMetadata
run: |
mv Dockerfile_legacy Dockerfile
python3 -c "
Expand Down Expand Up @@ -106,32 +174,6 @@ jobs:
github_token: ${{ secrets.GITHUB_TOKEN }}
amend: true
force: true

- name: Add conda to system path
run: echo $CONDA/bin >> $GITHUB_PATH

- name: Source conda
run: source $CONDA/etc/profile.d/conda.sh

- name: Set Python to 3.10.10
run:
conda install -y python=3.10.10

- name: Install dependencies
run: |
source activate
conda init
conda install git-lfs -c conda-forge
git-lfs install
conda install gh -c conda-forge
- name: Install ersilia
run: |
source activate
python --version
echo "After conda init"
conda init
python -m pip install git+https://github.com/ersilia-os/ersilia.git

- name: Update metadata to AirTable
id: update-metadata-to-airtable
Expand Down

0 comments on commit f6c0fd1

Please sign in to comment.