Skip to content

Commit f2274b0

Browse files
authored
Push docker images of coiled-runtime (#154)
1 parent 899fa4d commit f2274b0

6 files changed

Lines changed: 127 additions & 6 deletions
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
name: Create nightly Coiled software environments
2+
3+
on:
4+
schedule:
5+
# Runs at 01:00 every day after pre-release
6+
- cron: "0 1 * * *"
7+
8+
jobs:
9+
build:
10+
name: Python ${{ matrix.python-version }}, nightly build, ${{ matrix.server }}
11+
runs-on: ubuntu-latest
12+
strategy:
13+
fail-fast: false
14+
matrix:
15+
python-version: ["3.8", "3.9", "3.10"]
16+
server: ["https://staging.coiledhq.com"]
17+
include: #leaving this logic as we build nightly soft env for prod.
18+
- server: "https://staging.coiledhq.com"
19+
token-name: COILED_STAGING_BENCHMARK_BOT_TOKEN
20+
21+
steps:
22+
- name: Checkout source
23+
uses: actions/checkout@v2
24+
25+
- name: Set up Python
26+
uses: actions/setup-python@v1
27+
28+
- name: Install Coiled
29+
run: python -m pip install coiled
30+
31+
- name: Create environment variables
32+
run: |
33+
# conda search for the coiled-runtime latest nightly
34+
arr_nightly=($(conda search --override-channels -c coiled/label/dev coiled-runtime | tail -n 1))
35+
36+
# extract coiled-runtime nightly version / build
37+
export RUNTIME_NIGHTLY_VERSION=${arr_nightly[1]}
38+
export RUNTIME_NIGHTLY_VERSION_FORMATTED=$(echo $RUNTIME_NIGHTLY_VERSION | sed 's/\./-/g' )
39+
echo "Latest coiled-runtime nightly version formatted $RUNTIME_NIGHTLY_VERSION_FORMATTED"
40+
41+
# Coiled software environment names can't contain "." or uppercase characters
42+
export PYTHON_VERSION_FORMATTED=$(echo "${{ matrix.python-version }}" | sed 's/\.//g' )
43+
export COILED_SOFTWARE_ENV_NAME=coiled-runtime-$RUNTIME_NIGHTLY_VERSION_FORMATTED-py$PYTHON_VERSION_FORMATTED
44+
export ENV_FILENAME=coiled-runtime-nightly-py$PYTHON_VERSION_FORMATTED
45+
46+
# Put variables into $GITHUB_ENV so it can be used in subsequent workflow steps
47+
echo COILED_SOFTWARE_ENV_NAME=$COILED_SOFTWARE_ENV_NAME >> $GITHUB_ENV
48+
echo ENV_FILENAME=$ENV_FILENAME >> $GITHUB_ENV
49+
echo RUNTIME_NIGHTLY_VERSION=$RUNTIME_NIGHTLY_VERSION >> $GITHUB_ENV
50+
51+
- name: Pin latest nightly coiled-runtime
52+
uses: jacobtomlinson/gha-find-replace@v2
53+
with:
54+
include: "environments/coiled-runtime-nightly-*.yml"
55+
find: "coiled-runtime"
56+
replace: "coiled-runtime=${{ env.RUNTIME_NIGHTLY_VERSION }}"
57+
58+
- name: Login to DockerHub
59+
uses: docker/login-action@v2
60+
with:
61+
username: ${{ secrets.DOCKER_HUB_USERNAME }}
62+
password: ${{ secrets.DOCKER_HUB_TOKEN }}
63+
64+
- name: Build and push runtime nightly ${{ env.RUNTIME_NIGHTLY_VERSION }} python ${{ matrix.python-version }}
65+
uses: docker/build-push-action@v3
66+
with:
67+
push: true
68+
tags: coiled/coiled-runtime:nightly-${{ env.RUNTIME_NIGHTLY_VERSION }}-py${{ matrix.python-version }}
69+
build-args: ENV_FILENAME=${{ env.ENV_FILENAME }}
70+
71+
- name: Create Runtime ${{ env.RUNTIME_NIGHTLY_VERSION}}, Python ${{ matrix.python-version }}, Server ${{ matrix.server }} software environment
72+
env:
73+
DASK_COILED__SERVER: ${{ matrix.server }}
74+
DASK_COILED__TOKEN: ${{ secrets[matrix.token-name] }}
75+
run: |
76+
coiled env create --name coiled/${{ env.COILED_SOFTWARE_ENV_NAME }} --container coiled/coiled-runtime:nightly-${{ env.RUNTIME_NIGHTLY_VERSION }}-py${{ matrix.python-version }}

.github/workflows/software-environments.yml renamed to .github/workflows/software-environments-stable.yml

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Create software environments
1+
name: Create Coiled software environments
22

33
on:
44
push:
@@ -33,14 +33,33 @@ jobs:
3333
- name: Install Coiled
3434
run: python -m pip install coiled
3535

36-
- name: Create Runtime ${{ matrix.runtime-version }} Python ${{ matrix.python-version }} ${{ matrix.server }} software environment
37-
env:
38-
DASK_COILED__SERVER: ${{ matrix.server }}
39-
DASK_COILED__TOKEN: ${{ secrets[matrix.token-name] }}
36+
- name: Create environment variables
4037
run: |
4138
# Coiled software environment names can't contain "." or uppercase characters
4239
export RUNTIME_VERSION_FORMATTED=$(echo "${{ matrix.runtime-version }}" | sed 's/\./-/g' )
4340
export PYTHON_VERSION_FORMATTED=$(echo "${{ matrix.python-version }}" | sed 's/\.//g' )
4441
export COILED_SOFTWARE_ENV_NAME=coiled-runtime-$RUNTIME_VERSION_FORMATTED-py$PYTHON_VERSION_FORMATTED
42+
43+
# Put COILED_SOFTWARE_ENV_NAME into $GITHUB_ENV so it can be used in subsequent workflow steps
44+
echo $COILED_SOFTWARE_ENV_NAME
45+
echo COILED_SOFTWARE_ENV_NAME=$COILED_SOFTWARE_ENV_NAME >> $GITHUB_ENV
46+
47+
- name: Login to DockerHub
48+
uses: docker/login-action@v2
49+
with:
50+
username: ${{ secrets.DOCKER_HUB_USERNAME }}
51+
password: ${{ secrets.DOCKER_HUB_TOKEN }}
52+
53+
- name: Build and push runtime ${{ matrix.runtime-version }} python ${{ matrix.python-version }}
54+
uses: docker/build-push-action@v3
55+
with:
56+
push: true
57+
tags: coiled/coiled-runtime:${{ matrix.runtime-version }}-py${{ matrix.python-version }}
58+
build-args: ENV_FILENAME=${{ env.COILED_SOFTWARE_ENV_NAME }}
4559

46-
coiled env create --name coiled/$COILED_SOFTWARE_ENV_NAME --conda environments/$COILED_SOFTWARE_ENV_NAME.yml
60+
- name: Create Runtime ${{ matrix.runtime-version }} Python ${{ matrix.python-version }} ${{ matrix.server }} software environment
61+
env:
62+
DASK_COILED__SERVER: ${{ matrix.server }}
63+
DASK_COILED__TOKEN: ${{ secrets[matrix.token-name] }}
64+
run: |
65+
coiled env create --name coiled/${{ env.COILED_SOFTWARE_ENV_NAME }} --container coiled/coiled-runtime:${{ matrix.runtime-version }}-py${{ matrix.python-version }}

Dockerfile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
FROM mambaorg/micromamba:0.23.3
2+
ARG ENV_FILENAME
3+
COPY --chown=$MAMBA_USER:$MAMBA_USER environments/$ENV_FILENAME.yml /tmp/env.yml
4+
RUN micromamba install -y -n base -f /tmp/env.yml && \
5+
micromamba clean --all --yes
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
channels:
2+
- coiled/label/dev
3+
- dask/label/dev
4+
- conda-forge
5+
dependencies:
6+
- python=3.10
7+
- coiled-runtime
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
channels:
2+
- coiled/label/dev
3+
- dask/label/dev
4+
- conda-forge
5+
dependencies:
6+
- python=3.8
7+
- coiled-runtime
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
channels:
2+
- coiled/label/dev
3+
- dask/label/dev
4+
- conda-forge
5+
dependencies:
6+
- python=3.9
7+
- coiled-runtime

0 commit comments

Comments
 (0)