improve build time for container
Rust / Run tests (push) Failing after 1m1s
Details
Rust / Run tests (push) Failing after 1m1s
Details
This commit is contained in:
parent
5ba1965127
commit
88d0e6f2a0
|
@ -1,4 +1,4 @@
|
|||
name: Docker bot
|
||||
name: Docker
|
||||
|
||||
run-name: Build and push Docker image
|
||||
|
||||
|
@ -14,8 +14,8 @@ env:
|
|||
GITEA_REPOSITORY: datahearth/tech-bot
|
||||
|
||||
jobs:
|
||||
build-push:
|
||||
name: Build and push Docker image
|
||||
build-push-builder:
|
||||
name: Build and push rust builder image
|
||||
|
||||
runs-on: debian-docker
|
||||
|
||||
|
@ -23,8 +23,65 @@ jobs:
|
|||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Docker buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
- name: Log into registry Docker
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_TOKEN }}
|
||||
|
||||
- name: Log into registry Gitea
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ${{ env.GITEA_REGISTRY }}
|
||||
username: ${{ gitea.repository_owner }}
|
||||
password: ${{ secrets.REGISTRY_TOKEN }}
|
||||
|
||||
- name: Log into registry GitHub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ${{ env.GH_REGISTRY }}
|
||||
username: ${{ gitea.repository_owner }}
|
||||
password: ${{ secrets.GH_REGISTRY_TOKEN }}
|
||||
|
||||
- name: Extract Docker metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: |
|
||||
${{ env.GITEA_REPOSITORY }}
|
||||
${{ env.GITEA_REGISTRY }}/${{ env.GITEA_REPOSITORY }}
|
||||
${{ env.GH_REGISTRY }}/${{ env.GH_REPOSITORY }}
|
||||
tags: |
|
||||
type=semver,pattern=rust-builder-latest
|
||||
type=semver,pattern=rust-builder-{{version}}
|
||||
type=semver,pattern=rust-builder-{{major}}.{{minor}}
|
||||
flavor: |
|
||||
latest=false
|
||||
|
||||
- name: Build and push Docker image
|
||||
id: build-and-push
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
target: rust-builder
|
||||
cache-to: type=inline
|
||||
cache-from: |
|
||||
type=registry,ref=${{ env.GITEA_REPOSITORY }}:rust-builder-latest
|
||||
type=registry,ref=${{ env.GITEA_REGISTRY }}/${{ env.GITEA_REPOSITORY }}:rust-builder-latest
|
||||
type=registry,ref=${{ env.GH_REGISTRY }}/${{ env.GH_REPOSITORY }}:rust-builder-latest
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
|
||||
build-push-services:
|
||||
name: Build and push service images
|
||||
|
||||
needs: build-push-builder
|
||||
runs-on: debian-docker
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Log into registry Docker
|
||||
uses: docker/login-action@v2
|
||||
|
@ -58,7 +115,8 @@ jobs:
|
|||
type=semver,pattern=bot-latest
|
||||
type=semver,pattern=bot-{{version}}
|
||||
type=semver,pattern=bot-{{major}}.{{minor}}
|
||||
type=raw,value=latest,enable=false
|
||||
flavor: |
|
||||
latest=false
|
||||
|
||||
- name: Build and push Docker image
|
||||
id: build-and-push
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
name: Docker database
|
||||
name: Docker
|
||||
|
||||
run-name: Build and push Docker image
|
||||
|
||||
|
@ -14,8 +14,8 @@ env:
|
|||
GITEA_REPOSITORY: datahearth/tech-bot
|
||||
|
||||
jobs:
|
||||
build-push:
|
||||
name: Build and push Docker image
|
||||
build-push-builder:
|
||||
name: Build and push rust builder image
|
||||
|
||||
runs-on: debian-docker
|
||||
|
||||
|
@ -23,8 +23,65 @@ jobs:
|
|||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Docker buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
- name: Log into registry Docker
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_TOKEN }}
|
||||
|
||||
- name: Log into registry Gitea
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ${{ env.GITEA_REGISTRY }}
|
||||
username: ${{ gitea.repository_owner }}
|
||||
password: ${{ secrets.REGISTRY_TOKEN }}
|
||||
|
||||
- name: Log into registry GitHub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ${{ env.GH_REGISTRY }}
|
||||
username: ${{ gitea.repository_owner }}
|
||||
password: ${{ secrets.GH_REGISTRY_TOKEN }}
|
||||
|
||||
- name: Extract Docker metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: |
|
||||
${{ env.GITEA_REPOSITORY }}
|
||||
${{ env.GITEA_REGISTRY }}/${{ env.GITEA_REPOSITORY }}
|
||||
${{ env.GH_REGISTRY }}/${{ env.GH_REPOSITORY }}
|
||||
tags: |
|
||||
type=semver,pattern=rust-builder-latest
|
||||
type=semver,pattern=rust-builder-{{version}}
|
||||
type=semver,pattern=rust-builder-{{major}}.{{minor}}
|
||||
flavor: |
|
||||
latest=false
|
||||
|
||||
- name: Build and push Docker image
|
||||
id: build-and-push
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
target: rust-builder
|
||||
cache-to: type=inline
|
||||
cache-from: |
|
||||
type=registry,ref=${{ env.GITEA_REPOSITORY }}:rust-builder-latest
|
||||
type=registry,ref=${{ env.GITEA_REGISTRY }}/${{ env.GITEA_REPOSITORY }}:rust-builder-latest
|
||||
type=registry,ref=${{ env.GH_REGISTRY }}/${{ env.GH_REPOSITORY }}:rust-builder-latest
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
|
||||
build-push-services:
|
||||
name: Build and push service images
|
||||
|
||||
needs: build-push-builder
|
||||
runs-on: debian-docker
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Log into registry Docker
|
||||
uses: docker/login-action@v2
|
||||
|
@ -58,7 +115,8 @@ jobs:
|
|||
type=semver,pattern=database-latest
|
||||
type=semver,pattern=database-{{version}}
|
||||
type=semver,pattern=database-{{major}}.{{minor}}
|
||||
type=raw,value=latest,enable=false
|
||||
flavor: |
|
||||
latest=false
|
||||
|
||||
- name: Build and push Docker image
|
||||
id: build-and-push
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
name: Docker web
|
||||
name: Docker
|
||||
|
||||
run-name: Build and push Docker image
|
||||
|
||||
|
@ -14,8 +14,8 @@ env:
|
|||
GITEA_REPOSITORY: datahearth/tech-bot
|
||||
|
||||
jobs:
|
||||
build-push:
|
||||
name: Build and push Docker image
|
||||
build-push-builder:
|
||||
name: Build and push web builder image
|
||||
|
||||
runs-on: debian-docker
|
||||
|
||||
|
@ -23,8 +23,65 @@ jobs:
|
|||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Docker buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
- name: Log into registry Docker
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_TOKEN }}
|
||||
|
||||
- name: Log into registry Gitea
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ${{ env.GITEA_REGISTRY }}
|
||||
username: ${{ gitea.repository_owner }}
|
||||
password: ${{ secrets.REGISTRY_TOKEN }}
|
||||
|
||||
- name: Log into registry GitHub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ${{ env.GH_REGISTRY }}
|
||||
username: ${{ gitea.repository_owner }}
|
||||
password: ${{ secrets.GH_REGISTRY_TOKEN }}
|
||||
|
||||
- name: Extract Docker metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: |
|
||||
${{ env.GITEA_REPOSITORY }}
|
||||
${{ env.GITEA_REGISTRY }}/${{ env.GITEA_REPOSITORY }}
|
||||
${{ env.GH_REGISTRY }}/${{ env.GH_REPOSITORY }}
|
||||
tags: |
|
||||
type=semver,pattern=web-builder-latest
|
||||
type=semver,pattern=web-builder-{{version}}
|
||||
type=semver,pattern=web-builder-{{major}}.{{minor}}
|
||||
flavor: |
|
||||
latest=false
|
||||
|
||||
- name: Build and push Docker image
|
||||
id: build-and-push
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
target: web-builder
|
||||
cache-to: type=inline
|
||||
cache-from: |
|
||||
type=registry,ref=${{ env.GITEA_REPOSITORY }}:web-builder-latest
|
||||
type=registry,ref=${{ env.GITEA_REGISTRY }}/${{ env.GITEA_REPOSITORY }}:web-builder-latest
|
||||
type=registry,ref=${{ env.GH_REGISTRY }}/${{ env.GH_REPOSITORY }}:web-builder-latest
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
|
||||
build-push-services:
|
||||
name: Build and push service images
|
||||
|
||||
needs: build-push-builder
|
||||
runs-on: debian-docker
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Log into registry Docker
|
||||
uses: docker/login-action@v2
|
||||
|
@ -58,7 +115,8 @@ jobs:
|
|||
type=semver,pattern=web-latest
|
||||
type=semver,pattern=web-{{version}}
|
||||
type=semver,pattern=web-{{major}}.{{minor}}
|
||||
type=raw,value=latest,enable=false
|
||||
flavor: |
|
||||
latest=false
|
||||
|
||||
- name: Build and push Docker image
|
||||
id: build-and-push
|
||||
|
|
|
@ -14,22 +14,19 @@ env:
|
|||
GITEA_REPOSITORY: datahearth/tech-bot
|
||||
|
||||
jobs:
|
||||
build-push:
|
||||
name: Build and push Docker image
|
||||
build-push-builders:
|
||||
name: Build and push builder images
|
||||
|
||||
runs-on: debian-docker
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
target: [database, bot, web]
|
||||
target: [rust-builder, web-builder]
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Docker buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Log into registry Docker
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
|
@ -62,7 +59,72 @@ jobs:
|
|||
type=semver,pattern=${{ matrix.target }}-latest
|
||||
type=semver,pattern=${{ matrix.target }}-{{version}}
|
||||
type=semver,pattern=${{ matrix.target }}-{{major}}.{{minor}}
|
||||
type=raw,value=latest,enable=false
|
||||
flavor: |
|
||||
latest=false
|
||||
|
||||
- name: Build and push Docker image
|
||||
id: build-and-push
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
target: ${{ matrix.target }}
|
||||
cache-to: type=inline
|
||||
cache-from: |
|
||||
type=registry,ref=${{ env.GITEA_REPOSITORY }}:${{ matrix.target }}-latest
|
||||
type=registry,ref=${{ env.GITEA_REGISTRY }}/${{ env.GITEA_REPOSITORY }}:${{ matrix.target }}-latest
|
||||
type=registry,ref=${{ env.GH_REGISTRY }}/${{ env.GH_REPOSITORY }}:${{ matrix.target }}-latest
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
|
||||
build-push-services:
|
||||
name: Build and push service images
|
||||
|
||||
needs: build-push-builders
|
||||
runs-on: debian-docker
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
target: [database, bot, web]
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Log into registry Docker
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_TOKEN }}
|
||||
|
||||
- name: Log into registry Gitea
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ${{ env.GITEA_REGISTRY }}
|
||||
username: ${{ gitea.repository_owner }}
|
||||
password: ${{ secrets.REGISTRY_TOKEN }}
|
||||
|
||||
- name: Log into registry GitHub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ${{ env.GH_REGISTRY }}
|
||||
username: ${{ gitea.repository_owner }}
|
||||
password: ${{ secrets.GH_REGISTRY_TOKEN }}
|
||||
|
||||
- name: Extract Docker metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: |
|
||||
${{ env.GITEA_REPOSITORY }}
|
||||
${{ env.GITEA_REGISTRY }}/${{ env.GITEA_REPOSITORY }}
|
||||
${{ env.GH_REGISTRY }}/${{ env.GH_REPOSITORY }}
|
||||
tags: |
|
||||
type=semver,pattern=${{ matrix.target }}-latest
|
||||
type=semver,pattern=${{ matrix.target }}-{{version}}
|
||||
type=semver,pattern=${{ matrix.target }}-{{major}}.{{minor}}
|
||||
flavor: |
|
||||
latest=false
|
||||
|
||||
- name: Build and push Docker image
|
||||
id: build-and-push
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
set shell := ["zsh", "-uc"]
|
||||
|
||||
base_img_name := "datahearth/tech-bot"
|
||||
gitea_img_name := "gitea.antoine-langlois.net/" + base_img_name
|
||||
all_targets := "rust-builder web-builder bot web database"
|
||||
|
||||
alias b := build
|
||||
alias p := push
|
||||
alias ba := build-all
|
||||
alias pa := push-all
|
||||
|
||||
build TARGET:
|
||||
@docker build -t {{base_img_name}}:{{TARGET}} \
|
||||
--target {{TARGET}} \
|
||||
--cache-to type=inline \
|
||||
--cache-from type=registry,ref={{base_img_name}}:{{TARGET}} .
|
||||
@docker tag {{base_img_name}}:{{TARGET}} {{gitea_img_name}}:{{TARGET}}
|
||||
|
||||
push TARGET: (build TARGET)
|
||||
@docker push {{base_img_name}}:{{TARGET}}
|
||||
@docker push {{gitea_img_name}}:{{TARGET}}
|
||||
|
||||
build-all:
|
||||
#!/usr/bin/env zsh
|
||||
for target in {{all_targets}}; do
|
||||
echo "Building $target";
|
||||
docker build -t {{base_img_name}}:$target \
|
||||
--target $target \
|
||||
--cache-to type=inline \
|
||||
--cache-from type=registry,ref={{base_img_name}}:$target .;
|
||||
|
||||
docker tag {{base_img_name}}:$target {{gitea_img_name}}:$target;
|
||||
done
|
||||
|
||||
push-all: build-all
|
||||
#!/usr/bin/env zsh
|
||||
for target in {{all_targets}}; do
|
||||
echo "Pushing $target";
|
||||
docker push {{base_img_name}}:$target;
|
||||
docker push {{gitea_img_name}}:$target;
|
||||
done
|
Loading…
Reference in New Issue