ci: Build ARM and AMD Docker images in CI (#7963)
This commit is contained in:
parent
0619e3798f
commit
1363d6308d
47
.github/workflows/github-release.yml
vendored
47
.github/workflows/github-release.yml
vendored
|
|
@ -217,10 +217,21 @@ jobs:
|
||||||
name: rts-build-deps
|
name: rts-build-deps
|
||||||
path: app/rts/node_modules/
|
path: app/rts/node_modules/
|
||||||
|
|
||||||
|
- name: Set up QEMU (needed for docker buildx)
|
||||||
|
uses: docker/setup-qemu-action@v1
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v1
|
||||||
|
|
||||||
|
- name: Login to DockerHub
|
||||||
|
uses: docker/login-action@v1
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
|
||||||
|
|
||||||
- name: Build and push client image
|
- name: Build and push client image
|
||||||
working-directory: app/client
|
working-directory: app/client
|
||||||
run: |
|
run: |
|
||||||
echo ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
|
|
||||||
docker build -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-editor:${{needs.prelude.outputs.tag}} .
|
docker build -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-editor:${{needs.prelude.outputs.tag}} .
|
||||||
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-editor:${{needs.prelude.outputs.tag}}
|
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-editor:${{needs.prelude.outputs.tag}}
|
||||||
|
|
||||||
|
|
@ -230,10 +241,25 @@ jobs:
|
||||||
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-editor:latest
|
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-editor:latest
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
- name: Build and push fat image
|
||||||
|
run: |
|
||||||
|
tag_args="--tag ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-ce:${{needs.prelude.outputs.tag}}"
|
||||||
|
|
||||||
|
# Only build & tag with latest if the tag doesn't contain beta
|
||||||
|
if [[ ! ${{needs.prelude.outputs.tag}} == *"beta"* ]]; then
|
||||||
|
tag_args="$tag_args --tag ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-ce:latest"
|
||||||
|
fi
|
||||||
|
|
||||||
|
docker buildx build \
|
||||||
|
--platform linux/arm64,linux/amd64 \
|
||||||
|
--push \
|
||||||
|
--build-arg APPSMITH_SEGMENT_CE_KEY=${{ secrets.APPSMITH_SEGMENT_CE_KEY }} \
|
||||||
|
$tag_args \
|
||||||
|
.
|
||||||
|
|
||||||
- name: Build and push server image
|
- name: Build and push server image
|
||||||
working-directory: app/server
|
working-directory: app/server
|
||||||
run: |
|
run: |
|
||||||
echo ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
|
|
||||||
docker build --build-arg APPSMITH_SEGMENT_CE_KEY=${{ secrets.APPSMITH_SEGMENT_CE_KEY }} -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:${{needs.prelude.outputs.tag}} .
|
docker build --build-arg APPSMITH_SEGMENT_CE_KEY=${{ secrets.APPSMITH_SEGMENT_CE_KEY }} -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:${{needs.prelude.outputs.tag}} .
|
||||||
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:${{needs.prelude.outputs.tag}}
|
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:${{needs.prelude.outputs.tag}}
|
||||||
|
|
||||||
|
|
@ -247,7 +273,6 @@ jobs:
|
||||||
working-directory: app/rts
|
working-directory: app/rts
|
||||||
run: |
|
run: |
|
||||||
docker build -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-rts:${{needs.prelude.outputs.tag}} .
|
docker build -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-rts:${{needs.prelude.outputs.tag}} .
|
||||||
echo ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
|
|
||||||
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-rts:${{needs.prelude.outputs.tag}}
|
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-rts:${{needs.prelude.outputs.tag}}
|
||||||
|
|
||||||
# Only build & tag with latest if the tag doesn't contain beta
|
# Only build & tag with latest if the tag doesn't contain beta
|
||||||
|
|
@ -255,19 +280,3 @@ jobs:
|
||||||
docker build -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-rts:latest .
|
docker build -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-rts:latest .
|
||||||
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-rts:latest
|
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-rts:latest
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Build and push fat image
|
|
||||||
run: |
|
|
||||||
docker build \
|
|
||||||
--build-arg APPSMITH_SEGMENT_CE_KEY=${{ secrets.APPSMITH_SEGMENT_CE_KEY }} \
|
|
||||||
--tag ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-ce:${{needs.prelude.outputs.tag}} \
|
|
||||||
.
|
|
||||||
|
|
||||||
# Only build & tag with latest if the tag doesn't contain beta
|
|
||||||
if [[ ! ${{needs.prelude.outputs.tag}} == *"beta"* ]]; then
|
|
||||||
docker build --tag ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-ce:latest .
|
|
||||||
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-ce:latest
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
|
|
||||||
docker push --all-tags ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-ce
|
|
||||||
|
|
|
||||||
68
.github/workflows/test-build-docker-image.yml
vendored
68
.github/workflows/test-build-docker-image.yml
vendored
|
|
@ -551,13 +551,24 @@ jobs:
|
||||||
id: vars
|
id: vars
|
||||||
run: echo ::set-output name=tag::$(echo ${GITHUB_REF:11})
|
run: echo ::set-output name=tag::$(echo ${GITHUB_REF:11})
|
||||||
|
|
||||||
|
- name: Set up QEMU (needed for docker buildx)
|
||||||
|
uses: docker/setup-qemu-action@v1
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v1
|
||||||
|
|
||||||
|
- name: Login to DockerHub
|
||||||
|
uses: docker/login-action@v1
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
|
||||||
|
|
||||||
# Build release Docker image and push to Docker Hub
|
# Build release Docker image and push to Docker Hub
|
||||||
- name: Push client release image to Docker Hub
|
- name: Push client release image to Docker Hub
|
||||||
if: success() && github.ref == 'refs/heads/release' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch')
|
if: success() && github.ref == 'refs/heads/release' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch')
|
||||||
working-directory: app/client
|
working-directory: app/client
|
||||||
run: |
|
run: |
|
||||||
docker build -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-editor:${{steps.vars.outputs.tag}} .
|
docker build -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-editor:${{steps.vars.outputs.tag}} .
|
||||||
echo ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
|
|
||||||
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-editor:${{steps.vars.outputs.tag}}
|
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-editor:${{steps.vars.outputs.tag}}
|
||||||
|
|
||||||
# Build master Docker image and push to Docker Hub
|
# Build master Docker image and push to Docker Hub
|
||||||
|
|
@ -567,17 +578,42 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
docker build -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-editor:${GITHUB_SHA} .
|
docker build -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-editor:${GITHUB_SHA} .
|
||||||
docker build -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-editor:nightly .
|
docker build -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-editor:nightly .
|
||||||
echo ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
|
|
||||||
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-editor:${GITHUB_SHA}
|
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-editor:${GITHUB_SHA}
|
||||||
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-editor:nightly
|
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-editor:nightly
|
||||||
|
|
||||||
|
- name: Build and push release image to Docker Hub
|
||||||
|
if: success() && github.ref == 'refs/heads/release' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch')
|
||||||
|
working-directory: "."
|
||||||
|
run: |
|
||||||
|
tag_args="--tag ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-ce:${{steps.vars.outputs.tag}}"
|
||||||
|
|
||||||
|
docker buildx build \
|
||||||
|
--platform linux/arm64,linux/amd64 \
|
||||||
|
--push \
|
||||||
|
--build-arg APPSMITH_SEGMENT_CE_KEY=${{ secrets.APPSMITH_SEGMENT_CE_KEY }} \
|
||||||
|
$tag_args \
|
||||||
|
.
|
||||||
|
|
||||||
|
- name: Build and push master image to Docker Hub with commit tag
|
||||||
|
if: success() && github.ref == 'refs/heads/master' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch')
|
||||||
|
working-directory: "."
|
||||||
|
run: |
|
||||||
|
tag_args="--tag ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-ce:${GITHUB_SHA}"
|
||||||
|
tag_args="$tag_args --tag ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-ce:nightly"
|
||||||
|
|
||||||
|
docker buildx build \
|
||||||
|
--platform linux/arm64,linux/amd64 \
|
||||||
|
--push \
|
||||||
|
--build-arg APPSMITH_SEGMENT_CE_KEY=${{ secrets.APPSMITH_SEGMENT_CE_KEY }} \
|
||||||
|
$tag_args \
|
||||||
|
.
|
||||||
|
|
||||||
# Build release Docker image and push to Docker Hub
|
# Build release Docker image and push to Docker Hub
|
||||||
- name: Push server release image to Docker Hub
|
- name: Push server release image to Docker Hub
|
||||||
if: success() && github.ref == 'refs/heads/release'
|
if: success() && github.ref == 'refs/heads/release'
|
||||||
working-directory: app/server
|
working-directory: app/server
|
||||||
run: |
|
run: |
|
||||||
docker build --build-arg APPSMITH_SEGMENT_CE_KEY=${{ secrets.APPSMITH_SEGMENT_CE_KEY }} -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:${{steps.vars.outputs.tag}} .
|
docker build --build-arg APPSMITH_SEGMENT_CE_KEY=${{ secrets.APPSMITH_SEGMENT_CE_KEY }} -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:${{steps.vars.outputs.tag}} .
|
||||||
echo ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
|
|
||||||
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:${{steps.vars.outputs.tag}}
|
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:${{steps.vars.outputs.tag}}
|
||||||
|
|
||||||
# Build master Docker image and push to Docker Hub
|
# Build master Docker image and push to Docker Hub
|
||||||
|
|
@ -587,7 +623,6 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
docker build --build-arg APPSMITH_SEGMENT_CE_KEY=${{ secrets.APPSMITH_SEGMENT_CE_KEY }} -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:${GITHUB_SHA} .
|
docker build --build-arg APPSMITH_SEGMENT_CE_KEY=${{ secrets.APPSMITH_SEGMENT_CE_KEY }} -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:${GITHUB_SHA} .
|
||||||
docker build --build-arg APPSMITH_SEGMENT_CE_KEY=${{ secrets.APPSMITH_SEGMENT_CE_KEY }} -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:nightly .
|
docker build --build-arg APPSMITH_SEGMENT_CE_KEY=${{ secrets.APPSMITH_SEGMENT_CE_KEY }} -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:nightly .
|
||||||
echo ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
|
|
||||||
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:${GITHUB_SHA}
|
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:${GITHUB_SHA}
|
||||||
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:nightly
|
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:nightly
|
||||||
|
|
||||||
|
|
@ -597,7 +632,6 @@ jobs:
|
||||||
working-directory: app/rts
|
working-directory: app/rts
|
||||||
run: |
|
run: |
|
||||||
docker build -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-rts:${{steps.vars.outputs.tag}} .
|
docker build -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-rts:${{steps.vars.outputs.tag}} .
|
||||||
echo ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
|
|
||||||
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-rts:${{steps.vars.outputs.tag}}
|
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-rts:${{steps.vars.outputs.tag}}
|
||||||
|
|
||||||
# Build master Docker image and push to Docker Hub
|
# Build master Docker image and push to Docker Hub
|
||||||
|
|
@ -607,29 +641,5 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
docker build -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-rts:${GITHUB_SHA} .
|
docker build -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-rts:${GITHUB_SHA} .
|
||||||
docker build -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-rts:nightly .
|
docker build -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-rts:nightly .
|
||||||
echo ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
|
|
||||||
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-rts:${GITHUB_SHA}
|
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-rts:${GITHUB_SHA}
|
||||||
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-rts:nightly
|
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-rts:nightly
|
||||||
|
|
||||||
- name: Build and push release image to Docker Hub
|
|
||||||
if: success() && github.ref == 'refs/heads/release' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch')
|
|
||||||
working-directory: "."
|
|
||||||
run: |
|
|
||||||
docker build \
|
|
||||||
--build-arg APPSMITH_SEGMENT_CE_KEY=${{ secrets.APPSMITH_SEGMENT_CE_KEY }} \
|
|
||||||
--tag ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-ce:${{steps.vars.outputs.tag}} \
|
|
||||||
.
|
|
||||||
echo ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
|
|
||||||
docker push --all-tags ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-ce
|
|
||||||
|
|
||||||
- name: Build and push master image to Docker Hub with commit tag
|
|
||||||
if: success() && github.ref == 'refs/heads/master' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch')
|
|
||||||
working-directory: "."
|
|
||||||
run: |
|
|
||||||
docker build \
|
|
||||||
--build-arg APPSMITH_SEGMENT_CE_KEY=${{ secrets.APPSMITH_SEGMENT_CE_KEY }} \
|
|
||||||
--tag ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-ce:${GITHUB_SHA} \
|
|
||||||
--tag ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-ce:nightly \
|
|
||||||
.
|
|
||||||
echo ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
|
|
||||||
docker push --all-tags ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-ce
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user