From f2920ddefb1bb9bab44d11c938edfbe16a5364b6 Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Thu, 8 May 2025 02:54:37 +0400 Subject: [PATCH] Use Docker's actions to build Docker image --- .github/workflows/docker.yml | 46 ------------------------------------ .github/workflows/linux.yml | 34 ++++++++++++++++++++++---- 2 files changed, 30 insertions(+), 50 deletions(-) delete mode 100644 .github/workflows/docker.yml diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml deleted file mode 100644 index 8142e661b2..0000000000 --- a/.github/workflows/docker.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Docker. - -on: - push: - paths: - - '.github/workflows/docker.yml' - - 'Telegram/build/docker/centos_env/**' - pull_request: - paths: - - '.github/workflows/docker.yml' - - 'Telegram/build/docker/centos_env/**' - -jobs: - docker: - name: Ubuntu - runs-on: ubuntu-latest - - env: - IMAGE_TAG: ghcr.io/${{ github.repository }}/centos_env:latest - - steps: - - name: Clone. - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: First set up. - run: | - sudo apt update - curl -sSL https://install.python-poetry.org | python3 - - echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $ --password-stdin - - - name: Free up some disk space. - uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be - with: - tool-cache: true - - - name: Docker image build. - run: | - cd Telegram/build/docker/centos_env - poetry install - DEBUG= LTO= poetry run gen_dockerfile | DOCKER_BUILDKIT=1 docker build -t $IMAGE_TAG - - - - name: Push the Docker image. - if: ${{ github.ref_name == github.event.repository.default_branch }} - run: docker push $IMAGE_TAG diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index ef02f154c2..6831982259 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -12,6 +12,7 @@ on: - '!.github/workflows/linux.yml' - 'snap/**' - 'Telegram/build/**' + - '!Telegram/build/docker/centos_env/**' - 'Telegram/Resources/uwp/**' - 'Telegram/Resources/winrc/**' - 'Telegram/SourceFiles/platform/win/**' @@ -30,6 +31,7 @@ on: - '!.github/workflows/linux.yml' - 'snap/**' - 'Telegram/build/**' + - '!Telegram/build/docker/centos_env/**' - 'Telegram/Resources/uwp/**' - 'Telegram/Resources/winrc/**' - 'Telegram/SourceFiles/platform/win/**' @@ -52,6 +54,8 @@ jobs: env: UPLOAD_ARTIFACT: "true" + ONLY_CACHE: "false" + IMAGE_TAG: tdesktop:centos_env steps: - name: Clone. @@ -61,11 +65,32 @@ jobs: - name: First set up. run: | - echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $ --password-stdin - docker pull ghcr.io/$GITHUB_REPOSITORY/centos_env - docker tag ghcr.io/$GITHUB_REPOSITORY/centos_env tdesktop:centos_env + sudo apt update + curl -sSL https://install.python-poetry.org | python3 - + cd Telegram/build/docker/centos_env + poetry install + DOCKERFILE=$(DEBUG= LTO= poetry run gen_dockerfile) + echo "$DOCKERFILE" > Dockerfile + + - name: Free up some disk space. + uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be + with: + tool-cache: true + + - name: Set up Docker Buildx. + uses: docker/setup-buildx-action@v3 + + - name: Libraries. + uses: docker/build-push-action@v6 + with: + context: Telegram/build/docker/centos_env + load: ${{ env.ONLY_CACHE == 'false' }} + tags: ${{ env.IMAGE_TAG }} + cache-from: type=gha + cache-to: type=gha,mode=max - name: Telegram Desktop build. + if: env.ONLY_CACHE == 'false' run: | DEFINE="" if [ -n "${{ matrix.defines }}" ]; then @@ -80,7 +105,7 @@ jobs: -u $(id -u) \ -v $PWD:/usr/src/tdesktop \ -e CONFIG=Debug \ - tdesktop:centos_env \ + $IMAGE_TAG \ /usr/src/tdesktop/Telegram/build/docker/centos_env/build.sh \ -D CMAKE_CONFIGURATION_TYPES=Debug \ -D CMAKE_C_FLAGS_DEBUG="" \ @@ -94,6 +119,7 @@ jobs: $DEFINE - name: Check. + if: env.ONLY_CACHE == 'false' run: | filePath="out/Debug/Telegram" if test -f "$filePath"; then