Skip to content

Build Runtime Cluster Image #5

Build Runtime Cluster Image

Build Runtime Cluster Image #5

Workflow file for this run

name: Build Runtime Cluster Image
on:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
target: [
"yaml/cn/Language/go/1.22.5/1.22.5.yaml",
]
fail-fast: false
env:
RUNTIME_PATH: ${{ matrix.target }}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set variables
id: set_vars
run: |
RUNTIME_NAME=$(echo $RUNTIME_PATH | sed -E 's/.*\/([^/]+)\/([^/]+)\/.*\.yaml/\1-\2/' | tr '.' '-')
echo "runtime_name=$RUNTIME_NAME" >> $GITHUB_OUTPUT
echo "RUNTIME_NAME=$RUNTIME_NAME" >> $GITHUB_ENV
COMMIT_ID=${{ github.sha }}
SHORT_COMMIT_ID=${COMMIT_ID::6}
echo "COMMIT_ID=$COMMIT_ID" >> $GITHUB_OUTPUT
echo "SHORT_COMMIT_ID=$SHORT_COMMIT_ID" >> $GITHUB_OUTPUT
- name: Set up sealos
run: |
curl -sfL https://raw.githubusercontent.com/labring/sealos/main/scripts/install.sh | sh -s v5.0.0 labring/sealos
- name: Login to ghcr.io
run: |
sudo sealos login -u ${{ github.repository_owner }} -p ${{ secrets.GH_PAT }} ghcr.io
- name: Build cluster image
run: |
echo "runtime_path: $RUNTIME_PATH"
echo "runtime_name: $RUNTIME_NAME"
echo "short_sha: $SHORT_COMMIT_ID"
sudo bash script/build_runtime_cluster_image.sh $RUNTIME_PATH $RUNTIME_NAME ghcr.io/${{ github.repository_owner }}/sealos-cloud-devbox-runtime-$RUNTIME_NAME:$SHORT_COMMIT_ID
- name: Push and save cluster image
run: |
sudo sealos push ghcr.io/${{ github.repository_owner }}/sealos-cloud-devbox-runtime-$RUNTIME_NAME:$SHORT_COMMIT_ID
sudo sealos save ghcr.io/${{ github.repository_owner }}/sealos-cloud-devbox-runtime-$RUNTIME_NAME:$SHORT_COMMIT_ID -o $RUNTIME_NAME.tar
- name: Upload cluster image tar
run: |
sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash
ossutil64 cp -e ${{ secrets.OSS_ENDPOINT }} \
-i ${{ secrets.OSS_ACCESS_KEY_ID }} \
-k ${{ secrets.OSS_ACCESS_KEY_SECRET }} \
$RUNTIME_NAME.tar \
oss://${{ secrets.OSS_BUCKET }}/cloud/devbox/runtime/$RUNTIME_NAME.tar