Skip to content

Commit

Permalink
Build and push image (#90)
Browse files Browse the repository at this point in the history
* Build and push image

* Publish docker image in releasing new version
  • Loading branch information
trungleduc authored Feb 17, 2025
1 parent 214e378 commit 36d6fbb
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 7 deletions.
56 changes: 50 additions & 6 deletions .github/workflows/publish-release.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
name: "Step 2: Publish Release"
name: 'Step 2: Publish Release'
on:
workflow_dispatch:
inputs:
branch:
description: "The target branch"
description: 'The target branch'
required: false
release_url:
description: "The URL of the draft GitHub release"
description: 'The URL of the draft GitHub release'
required: false
steps_to_skip:
description: "Comma separated list of steps to skip"
description: 'Comma separated list of steps to skip'
required: false

jobs:
Expand All @@ -20,7 +20,7 @@ jobs:
id-token: write
steps:
- uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1

- uses: actions/create-github-app-token@v1
id: app-token
with:
Expand Down Expand Up @@ -53,4 +53,48 @@ jobs:
if: ${{ failure() }}
run: |
echo "Failed to Publish the Draft Release Url:"
echo ${{ steps.populate-release.outputs.release_url }}
echo ${{ steps.populate-release.outputs.release_url }}
build-image:
name: Build image
needs: publish_release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.branch }}
- name: Base Setup
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1

- name: Pause for 5 seconds
run: sleep 10 # Pause for 10 seconds to ensure the release is published

- name: Download release asset
run: |
TAG=$(gh release list --repo plasmabio/tljh-repo2docker --limit 1 --exclude-drafts --json tagName --jq '.[0].tagName')
gh release download "$TAG" --repo plasmabio/tljh-repo2docker --pattern "*.whl" --dir .
- name: Build image
run: |
set -eux
FILENAME=$(ls tljh_repo2docker*.whl)
VERSION=$(echo "$FILENAME" | sed -n 's/tljh_repo2docker-\([0-9a-zA-Z.]*\)-py.*/\1/p')
IMAGE_NAME=ghcr.io/${{ github.repository_owner }}/k8s-hub-tljh-r2d
echo "FULL_IMAGE_NAME=$IMAGE_NAME:$VERSION" >> $GITHUB_ENV
docker build -t $IMAGE_NAME:$VERSION -f Dockerfile .
- uses: actions/create-github-app-token@v1
id: app-token
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}

- name: Log in to GitHub Container Registry
run: echo $GITHUB_REGISTRY_TOKEN | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin
env:
GITHUB_REGISTRY_TOKEN: ${{ steps.app-token.outputs.token }}

- name: Push Docker image to GitHub Container Registry
run: |
docker push $FULL_IMAGE_NAME
7 changes: 7 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FROM quay.io/jupyterhub/k8s-hub:4.1.0

COPY tljh_repo2docker*.whl .
USER root
RUN python3 -m pip install tljh_repo2docker*.whl

USER jovyan
2 changes: 1 addition & 1 deletion example/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM quay.io/jupyterhub/k8s-hub:3.3.7
FROM quay.io/jupyterhub/k8s-hub:4.1.0

USER root
RUN python3 -m pip install "tljh-repo2docker>=2.0.0a1"
Expand Down

0 comments on commit 36d6fbb

Please sign in to comment.