-
Notifications
You must be signed in to change notification settings - Fork 57
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: build container for each version of the CLI
This commit adds a new feature to the project that builds a container for every version. This is helpful for easily running the CLI without having a local installation of Python, e.g. running the CLI in CI or on Kubernetes. With the current GitHub actions setup, a container is built on every merge to main with the Git SHA as the tag as well as on every trigger of the `release.yml` workflow, in which case the tag will be the version of the release. Images will be pushed to ghcr.io/fal-ai/fal. Signed-off-by: Lucas Servén Marín <[email protected]>
- Loading branch information
Showing
3 changed files
with
76 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
name: Container | ||
|
||
on: | ||
push: | ||
branches: [ main ] | ||
tags: | ||
- "*" | ||
pull_request: | ||
branches: [ main ] | ||
workflow_dispatch: | ||
workflow_call: | ||
inputs: | ||
version: | ||
description: Version | ||
required: false | ||
|
||
jobs: | ||
|
||
container: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Set up QEMU | ||
uses: docker/setup-qemu-action@v2 | ||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v2 | ||
- name: Build container | ||
uses: docker/build-push-action@v4 | ||
with: | ||
context: . | ||
|
||
push: | ||
if: github.event_name != 'pull_request' | ||
needs: | ||
- container | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Set up QEMU | ||
uses: docker/setup-qemu-action@v2 | ||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v2 | ||
- name: Login to GitHub Container Registry | ||
uses: docker/login-action@v2 | ||
with: | ||
registry: ghcr.io | ||
username: ${{ github.repository_owner }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Determine Version | ||
id: version | ||
run: echo "::set-output name=version::$(git describe --always --tags --dirty)" | ||
- name: Build and push | ||
id: push | ||
uses: docker/build-push-action@v4 | ||
with: | ||
context: . | ||
push: true | ||
platforms: linux/amd64, linux/arm64 | ||
tags: ghcr.io/fal-ai/fal:latest, ghcr.io/fal-ai/fal:${{ github.event.inputs.version || steps.version.outputs.version }} | ||
- name: Determine digest | ||
run: echo ${{ steps.push.outputs.digest }} |
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 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
FROM python:3.11-slim as build | ||
RUN ln -s /usr/bin/python3 /tmp/python3 | ||
RUN python3 -m venv /opt/fal | ||
COPY projects /src | ||
RUN /opt/fal/bin/pip install /src/fal | ||
|
||
FROM gcr.io/distroless/python3-debian12 | ||
COPY --from=build /tmp /usr/local/bin | ||
COPY --from=build /opt/fal /opt/fal | ||
ENTRYPOINT ["/opt/fal/bin/fal"] |