name: Publish Gpu 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/gpu/**' - '.github/workflows/publish-gpu-builder.yaml' - '!**.md' pull_request: # file paths to consider in the event. Optional; defaults to all. paths: - 'build/docker/builder/gpu/**' - '.github/workflows/publish-gpu-builder.yaml' - '!**.md' concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: ${{ github.event_name == 'pull_request' }} jobs: publish-gpu-builder: runs-on: ubuntu-latest timeout-minutes: 500 env: OS: ubuntu22.04 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=7 HEAD)" - name: Docker meta id: meta uses: docker/metadata-action@v5 with: images: | milvusdb/milvus-env tags: | type=raw,enable=true,value=gpu-${{ env.OS }}-{{date 'YYYYMMDD'}}-{{sha}} type=raw,enable=true,value=gpu-${{ env.OS }}-latest # - name: Setup upterm session # uses: lhotari/action-upterm@v1 - name: Set up QEMU uses: docker/setup-qemu-action@v3 with: platforms: arm64 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to Docker Hub if: github.event_name != 'pull_request' uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USER }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push uses: docker/build-push-action@v5 with: context: . platforms: linux/amd64,linux/arm64 push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} file: build/docker/builder/gpu/${{ env.OS }}/Dockerfile - name: Bump Builder Version if: success() && github.event_name == 'push' && github.repository == 'milvus-io/milvus' && ${{ env.OS == 'ubuntu22.04' }} uses: ./.github/actions/bump-builder-version with: tag: "${{ steps.extracter.outputs.version }}-${{ steps.extracter.outputs.sha_short }}" type: gpu token: ${{ secrets.ALL_CONTRIBUTORS_TOKEN }}