save kubeblocks-enterprise:v0.29.45 #725
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: Save Images | |
on: | |
workflow_dispatch: | |
inputs: | |
APP_NAME: | |
description: 'app name' | |
required: true | |
default: 'kubeblocks-enterprise' | |
type: choice | |
options: | |
- kubeblocks-enterprise | |
- kubeblocks-enterprise-patch | |
- kubeblocks | |
- kubeblocks-cloud | |
- cert-manager | |
- gemini | |
- ape-local-csi-driver | |
- apecloud-mysql | |
- clickhouse | |
- damengdb | |
- elasticsearch | |
- gaussdb | |
- gbase | |
- kafka | |
- kata | |
- kingbase | |
- kubebench | |
- kubechat | |
- k3s | |
- kubernetes | |
- loki | |
- minio | |
- mongodb | |
- mssql | |
- mysql | |
- metallb | |
- metrics-server | |
- oceanbase | |
- oceanbase-proxy | |
- postgresql | |
- postgres-operator | |
- qdrant | |
- rabbitmq | |
- rocketmq | |
- redis | |
- starrocks | |
- starrocks-3.2.2 | |
- starrocks-3.3.0 | |
- starrocks-3.3.2 | |
- starrocks-3.3.3 | |
- spiderpool | |
- victoria-metrics | |
- xinference-cpu | |
- xinference-gpu | |
- zookeeper | |
- ingress-nginx | |
- nvidia-device-plugin | |
- dify | |
- tidb | |
- vastbase | |
- mogdb | |
- polardbx | |
- pulsar | |
- calico | |
APP_VERSION: | |
description: 'app version' | |
required: true | |
default: '' | |
ADD_IMAGES: | |
description: 'additional images (e.g. docker.io/apecloud/kubeblocks:0.8.1)' | |
required: false | |
default: '' | |
KB_VERSION: | |
description: 'KubeBlocks version' | |
required: false | |
default: '' | |
GEMINI_VERSION: | |
description: 'Gemini ' | |
required: false | |
default: '' | |
OTELD_VERSION: | |
description: 'Oteld version' | |
required: false | |
default: '' | |
INSTALLER_VERSION: | |
description: 'Offline Installer version' | |
required: false | |
default: '' | |
DMS_VERSION: | |
description: 'Dms version' | |
required: false | |
default: '' | |
run-name: save ${{ inputs.APP_NAME }}:${{ inputs.APP_VERSION }} ${{ inputs.ADD_IMAGES }} | |
env: | |
DOCKER_REGISTRY_URL: docker.io | |
DOCKER_USER: ${{ secrets.DOCKER_REGISTRY_USER }} | |
DOCKER_PASSWORD: ${{ secrets.DOCKER_REGISTRY_PASSWORD }} | |
GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }} | |
OSS_KEY_ID: ${{ secrets.OSS_KEY_ID }} | |
OSS_KEY_SECRET: ${{ secrets.OSS_KEY_SECRET }} | |
OSS_ENDPOINT: "oss-cn-zhangjiakou.aliyuncs.com" | |
OSS_BUCKET: "kubeblocks-oss" | |
jobs: | |
save-app-images: | |
name: save app images | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Free disk space | |
run: | | |
if [[ "${{ inputs.APP_NAME }}" == "mysql" || "${{ inputs.APP_NAME }}" == "starrocks" ]]; then | |
sudo apt-get autoremove -y >/dev/null 2>&1 | |
sudo apt-get autoclean -y >/dev/null 2>&1 | |
sudo rm -rf /usr/local/lib/android >/dev/null 2>&1 | |
docker rmi $(docker image ls -aq) >/dev/null 2>&1 | |
sudo swapoff -a | |
sudo rm -f /swapfile | |
df -h | |
sudo mkdir -p /mnt/new-storage | |
sudo touch /etc/docker/daemon.json | |
sudo tee /etc/docker/daemon.json <<EOF | |
{ | |
"data-root": "/mnt/new-storage" | |
} | |
EOF | |
sudo systemctl restart docker | |
elif [[ "${{ inputs.APP_NAME }}" == "kubeblocks-enterprise" || "${{ inputs.APP_NAME }}" == "elasticsearch" || "${{ inputs.APP_NAME }}" == "starrocks"* ]]; then | |
sudo apt-get autoremove -y >/dev/null 2>&1 | |
sudo apt-get autoclean -y >/dev/null 2>&1 | |
sudo rm -rf /usr/local/lib/android >/dev/null 2>&1 | |
docker rmi $(docker image ls -aq) >/dev/null 2>&1 | |
sudo swapoff -a | |
sudo rm -f /swapfile | |
df -h | |
fi | |
- uses: actions/checkout@v4 | |
- uses: docker/setup-qemu-action@v3 | |
- name: Login to Docker Hub | |
uses: docker/login-action@v2 | |
with: | |
registry: ${{ env.DOCKER_REGISTRY_URL }} | |
username: ${{ env.DOCKER_USER }} | |
password: ${{ env.DOCKER_PASSWORD }} | |
- name: save images | |
env: | |
add_images: ${{ inputs.ADD_IMAGES }} | |
app_name: ${{ inputs.APP_NAME }} | |
app_version: ${{ inputs.APP_VERSION }} | |
kubeblocks_version: ${{ inputs.KB_VERSION }} | |
gemini_version: ${{ inputs.GEMINI_VERSION }} | |
oteld_version: ${{ inputs.OTELD_VERSION }} | |
installer_version: ${{ inputs.INSTALLER_VERSION }} | |
dms_version: ${{ inputs.DMS_VERSION }} | |
images_file: .github/images/${{ inputs.APP_NAME }}.txt | |
run: | | |
bash .github/scripts/save_images.sh | |
- name: get images size | |
run: | | |
docker images | |
du -sh ${{ inputs.APP_NAME }}-${{ inputs.APP_VERSION }}.tar.gz | |
- uses: manyuanrong/[email protected] | |
with: | |
access-key-id: "${{ secrets.OSS_KEY_ID }}" | |
access-key-secret: "${{ secrets.OSS_KEY_SECRET }}" | |
endpoint: "${{ env.OSS_ENDPOINT }}" | |
- name: Upload images to oss | |
id: upload_to_oss | |
run: | | |
echo "Free space:" | |
df -h | |
IMAGE_PKG_NAME="${{ inputs.APP_NAME }}-${{ inputs.APP_VERSION }}.tar.gz" | |
ossutil cp -rf ./${IMAGE_PKG_NAME} oss://${{ env.OSS_BUCKET }}/images/${IMAGE_PKG_NAME} | |
upload_ret=$? | |
if [[ $upload_ret -eq 0 ]]; then | |
echo "upload ${IMAGE_PKG_NAME} to oss successfully" | |
else | |
exit 1 | |
fi | |
save-result: | |
runs-on: ubuntu-latest | |
needs: [ save-app-images ] | |
if: ${{ always() }} | |
outputs: | |
image-pkg-name: ${{ steps.get_save_result.outputs.image_pkg_name }} | |
save-result: ${{ steps.get_save_result.outputs.save_result }} | |
steps: | |
- name: get save result | |
id: get_save_result | |
run: | | |
SAVE_RESULT="error" | |
IMAGE_PKG_NAME="${{ inputs.APP_NAME }}-${{ inputs.APP_VERSION }}.tar.gz" | |
if [[ "${{ needs.save-app-images.result }}" == "success" ]]; then | |
SAVE_RESULT="success" | |
IMAGE_PKG_NAME="http://kubeblocks-oss.${{ env.OSS_ENDPOINT }}/images/${IMAGE_PKG_NAME}" | |
fi | |
echo 'save_result='$SAVE_RESULT >> $GITHUB_OUTPUT | |
echo 'image_pkg_name='${IMAGE_PKG_NAME} >> $GITHUB_OUTPUT | |
send-message: | |
permissions: | |
id-token: write | |
contents: read | |
needs: [ save-result ] | |
if: ${{ always() }} | |
uses: apecloud-inc/apecloud-cd/.github/workflows/[email protected] | |
with: | |
TYPE: "2" | |
CONTENT: "save image ${{ needs.save-result.outputs.image-pkg-name }} ${{ needs.save-result.outputs.save-result }}" | |
secrets: inherit |