/
githubmirror
/
langroid
Обзор
Документация
Войти
/
githubmirror
/
langroid
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
.github/workflows/docker-publish.yml
141 строка
4 KB
Prasad Chalasani
build: adjust docker-publish.yml builds
04 мар 2025, 18:29
04 мар 2025, 18:29
8db8f6e
Код
Авторство
О чём код?
name: Docker Publish env: DOCKER_BUILDKIT: 1 on: push: paths: - "Dockerfile" - ".github/workflows/docker-publish.yml" branches: - main tags: - '*' jobs: build_amd64: name: Build Docker image for amd64 runs-on: ubuntu-latest steps: - name: Check out the repo uses: actions/checkout@v4 - name: Setup Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Determine Docker tag id: docker_tag run: | if [ "${{ github.ref_type }}" == "tag" ]; then echo "DOCKER_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV else echo "DOCKER_TAG=latest" >> $GITHUB_ENV fi - name: Build and push amd64 uses: docker/build-push-action@v5 with: context: . push: true platforms: linux/amd64 tags: | langroid/langroid:latest-amd64 langroid/langroid:${{ env.DOCKER_TAG }}-amd64 build-args: | BUILDKIT_INLINE_CACHE=1 provenance: false sbom: false build_arm64: name: Build Docker image for arm64 runs-on: ubuntu-latest steps: - name: Check out the repo uses: actions/checkout@v4 - name: Setup Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Determine Docker tag id: docker_tag run: | if [ "${{ github.ref_type }}" == "tag" ]; then echo "DOCKER_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV else echo "DOCKER_TAG=latest" >> $GITHUB_ENV fi - name: Set up QEMU uses: docker/setup-qemu-action@v2 with: platforms: arm64 - name: Build and push arm64 uses: docker/build-push-action@v5 with: context: . push: true platforms: linux/arm64 tags: | langroid/langroid:latest-arm64 langroid/langroid:${{ env.DOCKER_TAG }}-arm64 build-args: | TARGETARCH=arm64 BUILDKIT_INLINE_CACHE=1 provenance: false sbom: false create_manifest: name: Create and push multi-arch manifest needs: [build_amd64, build_arm64] runs-on: ubuntu-latest steps: - name: Determine Docker tag id: docker_tag run: | if [ "${{ github.ref_type }}" == "tag" ]; then echo "DOCKER_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV else echo "DOCKER_TAG=latest" >> $GITHUB_ENV fi - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Create and push latest manifest run: | docker manifest rm langroid/langroid:latest || true docker manifest create --amend langroid/langroid:latest \ langroid/langroid:latest-amd64 \ langroid/langroid:latest-arm64 docker manifest annotate langroid/langroid:latest langroid/langroid:latest-amd64 \ --os linux --arch amd64 docker manifest annotate langroid/langroid:latest langroid/langroid:latest-arm64 \ --os linux --arch arm64 docker manifest push langroid/langroid:latest # If the build is triggered by a git tag (e.g., 1.2.3), also create/push that manifest if [ "${{ env.DOCKER_TAG }}" != "latest" ]; then docker manifest rm langroid/langroid:${{ env.DOCKER_TAG }} || true docker manifest create --amend langroid/langroid:${{ env.DOCKER_TAG }} \ langroid/langroid:${{ env.DOCKER_TAG }}-amd64 \ langroid/langroid:${{ env.DOCKER_TAG }}-arm64 docker manifest push langroid/langroid:${{ env.DOCKER_TAG }} fi