Merge pull request #1308 from lowcoder-org/doc/existing_components #182
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: Build lowcoder docker images | |
on: | |
workflow_dispatch: | |
inputs: | |
imageTag: | |
type: choice | |
description: 'Choose a tag for built docker image(s)' | |
required: true | |
default: 'latest' | |
options: | |
- latest | |
- test | |
- 2.4.6 | |
build_allinone: | |
type: boolean | |
description: 'Build the All-In-One image' | |
default: true | |
build_frontend: | |
type: boolean | |
description: 'Build the Frontend image' | |
default: true | |
build_nodeservice: | |
type: boolean | |
description: 'Build the Node service image' | |
default: true | |
build_apiservice: | |
type: boolean | |
description: 'Build the API service image' | |
default: true | |
push: | |
branches: dev | |
paths: | |
- 'client/**' | |
- 'server/**' | |
- 'deploy/docker/**' | |
release: | |
types: [released] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set environment variables | |
shell: bash | |
run: | | |
# Get the short SHA of last commit | |
echo "SHORT_SHA=$(echo ${{ github.sha }} | cut -c1-7)" >> "${GITHUB_ENV}" | |
# Get branch name - we don't use github.ref_head_name since we don't build on PRs | |
echo "BRANCH_NAME=${{ github.ref_name }}" >> "${GITHUB_ENV}" | |
# Set docker image tag | |
echo "IMAGE_TAG=${{ inputs.imageTag || github.ref_name }}" >> "${GITHUB_ENV}" | |
# Control which images to build | |
echo "BUILD_ALLINONE=${{ inputs.build_allinone || true }}" >> "${GITHUB_ENV}" | |
echo "BUILD_FRONTEND=${{ inputs.build_frontend || true }}" >> "${GITHUB_ENV}" | |
echo "BUILD_NODESERVICE=${{ inputs.build_nodeservice || true }}" >> "${GITHUB_ENV}" | |
echo "BUILD_APISERVICE=${{ inputs.build_apiservice || true }}" >> "${GITHUB_ENV}" | |
- name: Checkout lowcoder source | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ env.BRANCH_NAME }} | |
- name: Log into Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_LOGIN }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Setup Docker Buildx with cloud driver | |
uses: docker/setup-buildx-action@v3 | |
with: | |
version: "lab:latest" | |
driver: cloud | |
endpoint: "lowcoderorg/lowcoder-cloud-builder" | |
- name: Build and push the all-in-one image | |
if: ${{ env.BUILD_ALLINONE == 'true' }} | |
uses: docker/build-push-action@v6 | |
env: | |
NODE_ENV: production | |
with: | |
file: ./deploy/docker/Dockerfile | |
build-args: | | |
REACT_APP_ENV=production | |
REACT_APP_COMMIT_ID="dev #${{ env.SHORT_SHA }}" | |
platforms: | | |
linux/amd64 | |
linux/arm64 | |
push: true | |
tags: lowcoderorg/lowcoder-ce:${{ env.IMAGE_TAG }} | |
- name: Build and push the frontend image | |
if: ${{ env.BUILD_FRONTEND == 'true' }} | |
uses: docker/build-push-action@v6 | |
env: | |
NODE_ENV: production | |
with: | |
file: ./deploy/docker/Dockerfile | |
target: lowcoder-ce-frontend | |
build-args: | | |
REACT_APP_ENV=production | |
REACT_APP_COMMIT_ID="dev #${{ env.SHORT_SHA }}" | |
platforms: | | |
linux/amd64 | |
linux/arm64 | |
push: true | |
tags: lowcoderorg/lowcoder-ce-frontend:${{ env.IMAGE_TAG }} | |
- name: Build and push the node service image | |
if: ${{ env.BUILD_NODESERVICE == 'true' }} | |
uses: docker/build-push-action@v6 | |
with: | |
file: ./deploy/docker/Dockerfile | |
target: lowcoder-ce-node-service | |
platforms: | | |
linux/amd64 | |
linux/arm64 | |
push: true | |
tags: lowcoderorg/lowcoder-ce-node-service:${{ env.IMAGE_TAG }} | |
- name: Build and push the API service image | |
if: ${{ env.BUILD_APISERVICE == 'true' }} | |
uses: docker/build-push-action@v6 | |
with: | |
file: ./deploy/docker/Dockerfile | |
target: lowcoder-ce-api-service | |
platforms: | | |
linux/amd64 | |
linux/arm64 | |
push: true | |
tags: lowcoderorg/lowcoder-ce-api-service:${{ env.IMAGE_TAG }} | |