mirror of
https://github.com/teslamate-org/teslamate.git
synced 2026-01-24 21:06:08 +08:00
79 lines
2.7 KiB
YAML
79 lines
2.7 KiB
YAML
name: "Build"
|
|
description: "Build images"
|
|
inputs:
|
|
is_dockerhub_pushed:
|
|
description: "Need docker hub login?"
|
|
required: true
|
|
default: ""
|
|
docker_password:
|
|
description: "Docker password"
|
|
required: true
|
|
repository_owner:
|
|
description: "Repository owner"
|
|
required: true
|
|
default: "teslamate-org"
|
|
repository:
|
|
description: "Repo owner and name (repo_owner/repo_name)"
|
|
required: true
|
|
default: "teslamate"
|
|
github_token:
|
|
description: "GitHub Token"
|
|
required: true
|
|
labels:
|
|
description: "Labels added on metadata"
|
|
required: false
|
|
default: ""
|
|
version:
|
|
description: "Branch deployed"
|
|
required: false
|
|
default: ""
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: Docker meta
|
|
id: meta
|
|
uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81 # v5.5.1
|
|
with:
|
|
images: ${{ env.REGISTRY_IMAGE }}
|
|
labels: |
|
|
{{ inputs.labels }}
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@4fd812986e6c8c2a69e18311145f9371337f27d4 # v3.4.0
|
|
- name: Login to Docker Hub
|
|
if: inputs.is_dockerhub_pushed != ''
|
|
uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446 # v3.2.0
|
|
with:
|
|
username: teslamate
|
|
password: ${{ inputs.docker_password }}
|
|
- name: Login to GitHub Container Registry
|
|
uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446 # v3.2.0
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ inputs.repository_owner }}
|
|
password: ${{ inputs.github_token }}
|
|
- name: Build and push by digest
|
|
id: build
|
|
uses: docker/build-push-action@1a162644f9a7e87d8f4b053101d1d9a712edc18c # v6.3.0
|
|
with:
|
|
context: .
|
|
platforms: ${{ matrix.platform }}
|
|
labels: ${{ steps.meta.outputs.labels }}
|
|
tags: ${{ steps.docker_meta.outputs.tags }}
|
|
cache-from: type=registry,ref=ghcr.io/${{ inputs.repository }}:buildcache-${{ matrix.cache_id }}-${{ inputs.version }}
|
|
cache-to: type=registry,ref=ghcr.io/${{ inputs.repository }}:buildcache-${{ matrix.cache_id }}-${{ inputs.version }},mode=max
|
|
outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true
|
|
- name: Export digest
|
|
shell: bash
|
|
run: |
|
|
mkdir -p /tmp/digests
|
|
digest="${{ steps.build.outputs.digest }}"
|
|
touch "/tmp/digests/${digest#sha256:}"
|
|
ls -l /tmp/digests/
|
|
- name: Upload digest
|
|
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4
|
|
with:
|
|
name: single-digest-${{ matrix.cache_id }}
|
|
path: /tmp/digests/*
|
|
if-no-files-found: error
|
|
retention-days: 1
|