Skip to content

Updated Yarn Lock for node-service (DuckDB) #536

Updated Yarn Lock for node-service (DuckDB)

Updated Yarn Lock for node-service (DuckDB) #536

Workflow file for this run

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
- stable
- test
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: 'Setup jq'
uses: dcarbone/install-jq-action@v3
with:
version: '1.7'
- 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
IMAGE_TAG=${{ inputs.imageTag || github.ref_name }}
# Check whether it's a release
LATEST_TAG=$(
curl -s -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ github.token }}" \
https://api.github.com/repos/${{ github.repository }}/releases/latest \
| jq -r '.tag_name'
)
IS_LATEST="false"
if [[ "${LATEST_TAG}" == "${{ github.event.release.tag_name }}" ]]; then
IS_LATEST="true"
fi;
# 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}"
# Image names
ALLINONE_IMAGE_NAMES=lowcoderorg/lowcoder-ce:${IMAGE_TAG}
FRONTEND_IMAGE_NAMES=lowcoderorg/lowcoder-ce-frontend:${IMAGE_TAG}
APISERVICE_IMAGE_NAMES=lowcoderorg/lowcoder-ce-api-service:${IMAGE_TAG}
NODESERVICE_IMAGE_NAMES=lowcoderorg/lowcoder-ce-node-service:${IMAGE_TAG}
if [[ "${IS_LATEST}" == "true" ]]; then
ALLINONE_IMAGE_NAMES="lowcoderorg/lowcoder-ce:latest,${ALLINONE_IMAGE_NAMES}"
FRONTEND_IMAGE_NAMES="lowcoderorg/lowcoder-ce-frontend:latest,${FRONTEND_IMAGE_NAMES}"
APISERVICE_IMAGE_NAMES="lowcoderorg/lowcoder-ce-api-service:latest,${APISERVICE_IMAGE_NAMES}"
NODESERVICE_IMAGE_NAMES="lowcoderorg/lowcoder-ce-node-service:latest,${NODESERVICE_IMAGE_NAMES}"
fi;
echo "ALLINONE_IMAGE_NAMES=${ALLINONE_IMAGE_NAMES}" >> "${GITHUB_ENV}"
echo "FRONTEND_IMAGE_NAMES=${FRONTEND_IMAGE_NAMES}" >> "${GITHUB_ENV}"
echo "APISERVICE_IMAGE_NAMES=${APISERVICE_IMAGE_NAMES}" >> "${GITHUB_ENV}"
echo "NODESERVICE_IMAGE_NAMES=${NODESERVICE_IMAGE_NAMES}" >> "${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: ${{ env.ALLINONE_IMAGE_NAMES }}
- 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: ${{ env.FRONTEND_IMAGE_NAMES }}
- 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: ${{ env.NODESERVICE_IMAGE_NAMES }}
- 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: ${{ env.APISERVICE_IMAGE_NAMES }}