updated github runner template #76
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
name: Docker Env Image (cuda-12-1) | |
on: | |
push: | |
branches: [ "main", "rwkv-x-*" ] | |
# Publish semver tags as releases. | |
tags: [ 'v*.*.*' ] | |
# Reduce build to only for the valid path | |
paths: | |
- docker/** | |
pull_request: | |
branches: [ "main", "rwkv-x-*" ] | |
paths: | |
- docker/** | |
env: | |
# Use docker.io for Docker Hub if empty | |
REGISTRY: ghcr.io | |
# github.repository as <account>/<repo> | |
IMAGE_NAME: ${{ github.repository }} | |
jobs: | |
build_env: | |
name: Docker Env Image (cuda-12-1) | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
packages: write | |
# This is used to complete the identity challenge | |
# with sigstore/fulcio when running outside of PRs. | |
id-token: write | |
steps: | |
# Get and log the free space | |
- name: Get system free space (Before reclaim) | |
run: | | |
echo "Free space:" | |
df -h | |
# Due to the docker image being > available space on the runner | |
# we need to do some optimization, to create more space. | |
# https://github.com/marketplace/actions/disk-space-reclaimer | |
# https://stackoverflow.com/questions/76294509/github-actions-docker-service-container-25gb-cannot-be-loaded | |
- name: Maximize build space | |
uses: insightsengineering/disk-space-reclaimer@v1 | |
with: | |
# this might remove tools that are actually needed, | |
# if set to "true" but frees about 6 GB | |
tools-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 | |
docker-images: true | |
# Get and log the free space | |
- name: Get system free space (After reclaim) | |
run: | | |
echo "Free space:" | |
df -h | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
# Install the cosign tool except on PR | |
# https://github.com/sigstore/cosign-installer | |
- name: Install cosign | |
if: github.event_name != 'pull_request' | |
uses: sigstore/[email protected] | |
# with: | |
# cosign-release: 'v2.2.0' | |
# Workaround: https://github.com/docker/build-push-action/issues/461 | |
- name: Setup Docker buildx | |
uses: docker/setup-buildx-action@v2 | |
# Login against a Docker registry except on PR | |
# https://github.com/docker/login-action | |
- name: Log into registry ${{ env.REGISTRY }} | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@28218f9b04b4f3f62068d7b6ce6ca5b26e35336c | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
# Extract metadata (tags, labels) for Docker | |
# https://github.com/docker/metadata-action | |
- name: Extract Docker metadata | |
id: meta | |
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | |
- name: downcase IMAGE_NAME | |
run: | | |
echo "IMAGE_NAME_LC=${IMAGE_NAME,,}" >>${GITHUB_ENV} | |
# Build and push Docker image with Buildx (don't push on PR) | |
# https://github.com/docker/build-push-action | |
- name: Build and push Docker image (env-cuda-12-1) | |
id: build-and-push | |
uses: docker/build-push-action@v4 | |
with: | |
context: "{{defaultContext}}:docker/env-cuda-12-1" | |
push: ${{ github.event_name != 'pull_request' }} # Don't push on PR | |
tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME_LC }}:env-cuda-12-1 | |
# tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
cache-from: type=gha,src=docker/env-cuda-12-1 | |
cache-to: type=gha,mode=max | |
build_runner: | |
name: Docker Env Image (github-worker-12-1) | |
needs: build_env | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
packages: write | |
# This is used to complete the identity challenge | |
# with sigstore/fulcio when running outside of PRs. | |
id-token: write | |
steps: | |
# Get and log the free space | |
- name: Get system free space (Before reclaim) | |
run: | | |
echo "Free space:" | |
df -h | |
# Due to the docker image being > available space on the runner | |
# we need to do some optimization, to create more space. | |
# https://github.com/marketplace/actions/disk-space-reclaimer | |
# https://stackoverflow.com/questions/76294509/github-actions-docker-service-container-25gb-cannot-be-loaded | |
- name: Maximize build space | |
uses: insightsengineering/disk-space-reclaimer@v1 | |
with: | |
# this might remove tools that are actually needed, | |
# if set to "true" but frees about 6 GB | |
tools-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 | |
docker-images: true | |
# Get and log the free space | |
- name: Get system free space (After reclaim) | |
run: | | |
echo "Free space:" | |
df -h | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
# Install the cosign tool except on PR | |
# https://github.com/sigstore/cosign-installer | |
- name: Install cosign | |
if: github.event_name != 'pull_request' | |
uses: sigstore/[email protected] | |
with: | |
cosign-release: 'v3.3.0' | |
# Workaround: https://github.com/docker/build-push-action/issues/461 | |
- name: Setup Docker buildx | |
uses: docker/setup-buildx-action@v2 | |
# Login against a Docker registry except on PR | |
# https://github.com/docker/login-action | |
- name: Log into registry ${{ env.REGISTRY }} | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@28218f9b04b4f3f62068d7b6ce6ca5b26e35336c | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
# Extract metadata (tags, labels) for Docker | |
# https://github.com/docker/metadata-action | |
- name: Extract Docker metadata | |
id: meta | |
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | |
- name: downcase IMAGE_NAME | |
run: | | |
echo "IMAGE_NAME_LC=${IMAGE_NAME,,}" >>${GITHUB_ENV} | |
# Build and push Docker image with Buildx (don't push on PR) | |
# https://github.com/docker/build-push-action | |
- name: Build and push Docker image (github-worker-cuda-12-1) | |
id: build-and-push | |
uses: docker/build-push-action@v4 | |
with: | |
context: "{{defaultContext}}:docker/github-worker-cuda-12-1" | |
push: ${{ github.event_name != 'pull_request' }} # Don't push on PR | |
tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME_LC }}:github-worker-cuda-12-1 | |
# tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
cache-from: type=gha,src=docker/github-worker-cuda-12-1 | |
cache-to: type=gha,mode=max |