Skip create docker builder if exit #13
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: Publish Builder | |
# TODO: do not trigger action for some document file update | |
# This workflow is triggered on pushes or pull request to the repository. | |
on: | |
push: | |
# file paths to consider in the event. Optional; defaults to all. | |
paths: | |
- 'build/docker/builder/cpu/**' | |
- '.github/workflows/publish-builder.yaml' | |
- '!**.md' | |
pull_request: | |
# file paths to consider in the event. Optional; defaults to all. | |
paths: | |
- 'build/docker/builder/cpu/**' | |
- '.github/workflows/publish-builder.yaml' | |
- '!**.md' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
publish-builder: | |
name: ${{ matrix.arch }} ${{ matrix.os }} | |
runs-on: ubuntu-latest | |
timeout-minutes: 500 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu20.04, amazonlinux2023] | |
arch: [amd64&arm64] | |
env: | |
OS_NAME: ${{ matrix.os }} | |
IMAGE_ARCH: ${{ matrix.arch }} | |
steps: | |
- name: Maximize build space | |
uses: easimon/maximize-build-space@master | |
if: ${{ ! startsWith(runner.name, 'self') }} # skip this step if it is self-hosted runner | |
with: | |
root-reserve-mb: 20480 | |
# overprovision-lvm: 'true' | |
swap-size-mb: 1024 | |
remove-dotnet: 'true' | |
remove-android: 'true' | |
remove-haskell: 'true' | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Get version from system time after release step | |
id: extracter | |
run: | | |
echo "::set-output name=version::$(date +%Y%m%d)" | |
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)" | |
# - name: Setup upterm session | |
# uses: lhotari/action-upterm@v1 | |
- name: Docker Pull | |
shell: bash | |
run: | | |
docker run --rm --privileged tonistiigi/binfmt:latest --install arm64 | |
docker buildx ls | |
# Check if the builder named "milvus" exists | |
if docker buildx ls | grep -q "milvus"; then | |
echo "Builder 'milvus' already exists. Skipping creation." | |
else | |
# Create the builder named "milvus" | |
echo "Creating builder named 'milvus'..." | |
docker buildx create --use --name=milvus --driver docker-container | |
echo "'milvus' builder created." | |
fi | |
- name: Docker Build | |
if: success() && github.event_name == 'pull_request' && github.repository == 'milvus-io/milvus' | |
shell: bash | |
run: | | |
docker buildx ls | |
docker buildx build --platform linux/amd64,linux/arm64 -t milvusdb/milvus-env:${OS_NAME}-${{ steps.extracter.outputs.version }}-${{ steps.extracter.outputs.sha_short }} -f build/docker/builder/cpu/${OS_NAME}/Dockerfile . | |
- name: Docker Build&Push | |
if: success() && github.event_name == 'push' && github.repository == 'milvus-io/milvus' | |
shell: bash | |
run: | | |
docker buildx ls | |
docker login -u ${{ secrets.DOCKERHUB_USER }} \ | |
-p ${{ secrets.DOCKERHUB_TOKEN }} | |
docker buildx build --platform linux/amd64,linux/arm64 --push -t milvusdb/milvus-env:${OS_NAME}-${{ steps.extracter.outputs.version }}-${{ steps.extracter.outputs.sha_short }} -f build/docker/builder/cpu/${OS_NAME}/Dockerfile . | |
docker buildx build --platform linux/amd64,linux/arm64 --push -t milvusdb/milvus-env:${OS_NAME}-latest -f build/docker/builder/cpu/${OS_NAME}/Dockerfile . | |
- name: Update Builder Image Changes | |
if: success() && github.event_name == 'push' && github.repository == 'milvus-io/milvus' && matrix.os == 'ubuntu20.04' | |
continue-on-error: true | |
shell: bash | |
run: | | |
sed -i "s#^DATE_VERSION=.*#DATE_VERSION=${{ steps.extracter.outputs.version }}-${{ steps.extracter.outputs.sha_short }}#g" .env | |
sed -i "s#^LATEST_DATE_VERSION=.*#LATEST_DATE_VERSION=${{ steps.extracter.outputs.version }}-${{ steps.extracter.outputs.sha_short }}#g" .env | |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
git config --local user.name "github-actions[bot]" | |
git add .env | |
git commit -m "Update Builder image changes" | |
- name: Create Pull Request | |
id: cpr | |
if: success() && github.event_name == 'push' && github.repository == 'milvus-io/milvus' && matrix.os == 'ubuntu20.04' | |
continue-on-error: true | |
uses: peter-evans/create-pull-request@v3 | |
with: | |
token: ${{ secrets.ALL_CONTRIBUTORS_TOKEN }} | |
author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> | |
signoff: false | |
branch: update_builder_${{ github.sha }} | |
delete-branch: true | |
title: '[automated] Update Builder image changes' | |
body: | | |
Update Builder image changes | |
See changes: https://github.com/milvus-io/milvus/commit/${{ github.sha }} | |
Signed-off-by: ${{ github.actor }} ${{ github.actor }}@users.noreply.github.com | |
- name: Check outputs | |
if: success() && github.event_name == 'push' && github.repository == 'milvus-io/milvus' && matrix.os == 'ubuntu20.04' | |
run: | | |
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}" | |
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}" | |