Dragonfly2
97 строк · 2.9 Кб
1name: Docker2
3on:4push:5branches:6- main7tags:8- v*9
10jobs:11push_image_to_registry:12name: Push Image13runs-on: ubuntu-latest14strategy:15matrix:16module: ["manager", "scheduler", "dfdaemon", "trainer"]17include:18- module: manager19platforms: linux/amd64,linux/arm6420- module: scheduler21platforms: linux/amd64,linux/arm6422- module: dfdaemon23platforms: linux/amd64,linux/arm6424- module: trainer25platforms: linux/amd64,linux/arm6426timeout-minutes: 12027steps:28- name: Check out code29uses: actions/checkout@v430with:31submodules: recursive32
33- name: Get Version34id: get_version35run: |36VERSION=${GITHUB_REF#refs/tags/}
37if [[ ${GITHUB_REF} == "refs/heads/main" ]]; then
38VERSION=latest
39fi
40echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT
41
42- name: Get Git Revision43id: vars44shell: bash45run: |46echo "git_revision=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
47
48- name: PrepareReg Names49run: |50echo IMAGE_REPOSITORY=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]') >> $GITHUB_ENV
51
52- name: Setup QEMU53uses: docker/setup-qemu-action@v354
55- name: Setup Docker Buildx56uses: docker/setup-buildx-action@v357
58- name: Cache Docker layers59uses: actions/cache@v460with:61path: /tmp/.buildx-cache62key: ${{ runner.os }}-buildx-${{ github.sha }}63restore-keys: |64${{ runner.os }}-buildx-
65
66- name: Login Docker Hub67uses: docker/login-action@v368with:69registry: docker.io70username: ${{ secrets.DOCKER_USERNAME }}71password: ${{ secrets.DOCKER_PASSWORD }}72
73- name: Login to GitHub Container Registry74uses: docker/login-action@v375with:76registry: ghcr.io77username: ${{ github.repository_owner }}78password: ${{ secrets.GITHUB_TOKEN }}79
80- name: Push to Registry81uses: docker/build-push-action@v582with:83context: .84platforms: ${{ matrix.platforms }}85file: build/images/${{ matrix.module }}/Dockerfile86labels: |-87org.opencontainers.image.source=https://github.com/${{ github.repository }}88org.opencontainers.image.revision=${{ github.sha }}89build-args: |90GITVERSION=git-${{ steps.vars.outputs.git_revision }}
91VERSION=${{ steps.get_version.outputs.VERSION }}
92tags: |93dragonflyoss/${{ matrix.module }}:${{ steps.get_version.outputs.VERSION }}
94ghcr.io/${{ env.IMAGE_REPOSITORY }}/${{ matrix.module }}:${{ steps.get_version.outputs.VERSION }}
95push: true96cache-from: type=local,src=/tmp/.buildx-cache97cache-to: type=local,dest=/tmp/.buildx-cache-new98