Dragonfly2

Форк
0
97 строк · 2.9 Кб
1
name: Docker
2

3
on:
4
  push:
5
    branches:
6
      - main
7
    tags:
8
      - v*
9

10
jobs:
11
  push_image_to_registry:
12
    name: Push Image
13
    runs-on: ubuntu-latest
14
    strategy:
15
      matrix:
16
        module: ["manager", "scheduler", "dfdaemon", "trainer"]
17
        include:
18
          - module: manager
19
            platforms: linux/amd64,linux/arm64
20
          - module: scheduler
21
            platforms: linux/amd64,linux/arm64
22
          - module: dfdaemon
23
            platforms: linux/amd64,linux/arm64
24
          - module: trainer
25
            platforms: linux/amd64,linux/arm64
26
    timeout-minutes: 120
27
    steps:
28
      - name: Check out code
29
        uses: actions/checkout@v4
30
        with:
31
          submodules: recursive
32

33
      - name: Get Version
34
        id: get_version
35
        run: |
36
          VERSION=${GITHUB_REF#refs/tags/}
37
          if [[ ${GITHUB_REF} == "refs/heads/main" ]]; then
38
            VERSION=latest
39
          fi
40
          echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT
41

42
      - name: Get Git Revision
43
        id: vars
44
        shell: bash
45
        run: |
46
          echo "git_revision=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
47

48
      - name: PrepareReg Names
49
        run: |
50
           echo IMAGE_REPOSITORY=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]') >> $GITHUB_ENV
51

52
      - name: Setup QEMU
53
        uses: docker/setup-qemu-action@v3
54

55
      - name: Setup Docker Buildx
56
        uses: docker/setup-buildx-action@v3
57

58
      - name: Cache Docker layers
59
        uses: actions/cache@v4
60
        with:
61
          path: /tmp/.buildx-cache
62
          key: ${{ runner.os }}-buildx-${{ github.sha }}
63
          restore-keys: |
64
            ${{ runner.os }}-buildx-
65

66
      - name: Login Docker Hub
67
        uses: docker/login-action@v3
68
        with:
69
          registry: docker.io
70
          username: ${{ secrets.DOCKER_USERNAME }}
71
          password: ${{ secrets.DOCKER_PASSWORD }}
72

73
      - name: Login to GitHub Container Registry
74
        uses: docker/login-action@v3
75
        with:
76
          registry: ghcr.io
77
          username: ${{ github.repository_owner }}
78
          password: ${{ secrets.GITHUB_TOKEN }}
79

80
      - name: Push to Registry
81
        uses: docker/build-push-action@v5
82
        with:
83
          context: .
84
          platforms: ${{ matrix.platforms }}
85
          file: build/images/${{ matrix.module }}/Dockerfile
86
          labels: |-
87
            org.opencontainers.image.source=https://github.com/${{ github.repository }}
88
            org.opencontainers.image.revision=${{ github.sha }}
89
          build-args: |
90
            GITVERSION=git-${{ steps.vars.outputs.git_revision }}
91
            VERSION=${{ steps.get_version.outputs.VERSION }}
92
          tags: |
93
            dragonflyoss/${{ matrix.module }}:${{ steps.get_version.outputs.VERSION }}
94
            ghcr.io/${{ env.IMAGE_REPOSITORY }}/${{ matrix.module }}:${{ steps.get_version.outputs.VERSION }}
95
          push: true
96
          cache-from: type=local,src=/tmp/.buildx-cache
97
          cache-to: type=local,dest=/tmp/.buildx-cache-new
98

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.