Resume from preemption / checkpoints (#254) #48
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This is an example workflow file. | |
# | |
# When you add a new image, copy this file and then change all mentions of "hello-world" with | |
# the name of your new image. | |
# | |
# Read through the rest of the comments in this file to figure out how it works, and what else | |
# you need to change. | |
name: build_open_instruct | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
on: | |
push: | |
# Run this workflow anytime a push updates one of the files in the image's directory | |
# (other than the README), and anytime there's a new release tag for this image. | |
paths: | |
- 'open_instruct/**' | |
- '!open_instruct/README.md' | |
- 'requirements.txt' | |
- 'Dockerfile' | |
# Note, add .olmo dockerfile + requirements if adding auto build to those | |
branches: [main] | |
# pull_request: # note, comment this out for running on every push | |
# # Also run on PRs that update the files in the image's directory (other than README). | |
# branches: [main] | |
# paths: | |
# - 'open_instruct/**' | |
# - '!open_instruct/README.md' | |
# - 'requirements.txt' | |
# - 'Dockerfile' | |
workflow_dispatch: # This allows us to manually trigger a build through the GitHub UI. | |
env: | |
DOCKER_BUILDKIT: "1" | |
jobs: | |
build: | |
name: open_instruct | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
if: (github.event_name != 'workflow_run') || (github.event.workflow_run.conclusion == 'success') | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup environment | |
uses: ./.github/actions/setup | |
with: | |
beaker_token: ${{ secrets.BEAKER_TOKEN }} | |
# ghcr_token: ${{ secrets.GHCR_TOKEN }} | |
# ghcr_user: ${{ secrets.GHCR_USER }} | |
# big images fail, trying this | |
- name: Delete huge unnecessary tools folder | |
run: rm -rf /opt/hostedtoolcache /usr/share/dotnet "$AGENT_TOOLSDIRECTORY" | |
- name: Build image | |
run: | | |
docker build \ | |
--build-arg BUILDKIT_INLINE_CACHE=1 \ | |
--build-arg CUDA=12.1.0 --build-arg \ | |
TARGET=cudnn8-devel --build-arg DIST=ubuntu20.04 \ | |
--build-arg REQUIRE=requirements.txt . \ | |
-t open_instruct | |
- name: Check image | |
run: | | |
docker run --rm open_instruct | |
- name: Push image | |
# if: github.event_name != 'pull_request' | |
uses: ./.github/actions/push | |
with: | |
image: open_instruct # this is the tag of the image we just built in the previous step | |
beaker: open_instruct_auto # this is the name of the image on Beaker | |
latest: true # this flag says we should also push this as the 'latest' version to GHCR |