try speeding up build process
Rust / Run tests (push) Successful in 1m34s
Details
Rust / Run tests (push) Successful in 1m34s
Details
This commit is contained in:
parent
368e82dbbd
commit
931a5b967b
|
@ -14,65 +14,6 @@ env:
|
|||
GITEA_REPOSITORY: datahearth/tech-bot
|
||||
|
||||
jobs:
|
||||
build-push-builder:
|
||||
name: Build and push rust builder image
|
||||
|
||||
runs-on: debian-docker
|
||||
|
||||
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=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
|
||||
|
||||
|
|
|
@ -14,65 +14,6 @@ env:
|
|||
GITEA_REPOSITORY: datahearth/tech-bot
|
||||
|
||||
jobs:
|
||||
build-push-builder:
|
||||
name: Build and push rust builder image
|
||||
|
||||
runs-on: debian-docker
|
||||
|
||||
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=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
|
||||
|
||||
|
|
|
@ -19,10 +19,6 @@ jobs:
|
|||
|
||||
runs-on: debian-docker
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
target: [rust-builder, web-dependencies]
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
@ -56,9 +52,9 @@ jobs:
|
|||
${{ 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}}
|
||||
type=semver,pattern=web-dependencies-latest
|
||||
type=semver,pattern=web-dependencies-{{version}}
|
||||
type=semver,pattern=web-dependencies-{{major}}.{{minor}}
|
||||
flavor: |
|
||||
latest=false
|
||||
|
||||
|
@ -68,12 +64,12 @@ jobs:
|
|||
with:
|
||||
context: .
|
||||
push: true
|
||||
target: ${{ matrix.target }}
|
||||
target: web-dependencies
|
||||
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
|
||||
type=registry,ref=${{ env.GITEA_REPOSITORY }}:web-dependencies-latest
|
||||
type=registry,ref=${{ env.GITEA_REGISTRY }}/${{ env.GITEA_REPOSITORY }}:web-dependencies-latest
|
||||
type=registry,ref=${{ env.GH_REGISTRY }}/${{ env.GH_REPOSITORY }}:web-dependencies-latest
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
|
||||
|
@ -138,5 +134,6 @@ jobs:
|
|||
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
|
||||
${{ (contains(${{ matrix.target }}, 'web') && 'type=registry,ref=${{ env.GH_REGISTRY }}/${{ env.GH_REPOSITORY }}:web-dependencies-latest') }}
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
|
|
30
Dockerfile
30
Dockerfile
|
@ -1,34 +1,36 @@
|
|||
# ********************************
|
||||
# * Build the bot and database *
|
||||
# * Build & deploy bot ***********
|
||||
# ********************************
|
||||
|
||||
FROM rust:1 as rust-builder
|
||||
FROM rust:1 as bot-builder
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY Cargo.toml Cargo.lock ./
|
||||
COPY bot /app/bot
|
||||
COPY database /app/database
|
||||
COPY Cargo.toml Cargo.lock bot ./
|
||||
|
||||
RUN cargo build -r --workspace
|
||||
RUN cargo build --release --bin bot
|
||||
|
||||
# ********************************
|
||||
# * Deploy the bot *
|
||||
# ********************************
|
||||
|
||||
FROM gcr.io/distroless/cc as bot
|
||||
|
||||
COPY --from=rust-builder /app/target/release/bot /bot
|
||||
COPY --from=bot-builder /app/target/release/bot /bot
|
||||
|
||||
CMD [ "/bot" ]
|
||||
|
||||
# ********************************
|
||||
# * Deploy the database *
|
||||
# * Build & deploy the database **
|
||||
# ********************************
|
||||
FROM rust:1 as db-builder
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY Cargo.toml Cargo.lock database ./
|
||||
|
||||
RUN cargo build --release --bin database
|
||||
|
||||
|
||||
FROM gcr.io/distroless/cc as database
|
||||
|
||||
COPY --from=rust-builder /app/target/release/database /database
|
||||
COPY --from=db-builder /app/target/release/database /database
|
||||
|
||||
ENV DB_PATH=/app/tech-bot.db
|
||||
|
||||
|
@ -39,7 +41,7 @@ VOLUME [ "/app" ]
|
|||
CMD [ "/database" ]
|
||||
|
||||
# ********************************
|
||||
# * Build the web *
|
||||
# * Build the web ***************
|
||||
# ********************************
|
||||
|
||||
FROM node:18-slim as web-dependencies
|
||||
|
|
Loading…
Reference in New Issue