Build Runtime Cluster Image #5
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 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 |