You've already forked hotpocket
82 lines
2.8 KiB
YAML
82 lines
2.8 KiB
YAML
name: "Build deployment images"
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
target:
|
|
required: true
|
|
type: "string"
|
|
registry:
|
|
required: false
|
|
type: "string"
|
|
default: "docker-hosted.nexus.bthlabs.pl"
|
|
platform:
|
|
required: false
|
|
type: "string"
|
|
default: "linux/amd64,linux/arm64"
|
|
secrets:
|
|
VAULT_ROLE_ID:
|
|
required: true
|
|
VAULT_SECRET_ID:
|
|
required: true
|
|
|
|
jobs:
|
|
build-deployment-images:
|
|
name: "Build deployment images"
|
|
runs-on: "ubuntu-latest"
|
|
steps:
|
|
- name: "Checkout the code"
|
|
uses: "actions/checkout@v2"
|
|
- name: "Get build options"
|
|
id: "get-build-options"
|
|
uses: "./.gitea/actions/get-build-options"
|
|
- name: "Get `backend` version"
|
|
id: "get-backend-version"
|
|
uses: "./.gitea/actions/get-service-version"
|
|
with:
|
|
service: "backend"
|
|
- name: "Import Secrets"
|
|
id: "import-secrets"
|
|
uses: "hashicorp/vault-action@v2"
|
|
with:
|
|
url: "https://vault.bthlabs.pl/"
|
|
method: "approle"
|
|
roleId: "${{ secrets.VAULT_ROLE_ID }}"
|
|
secretId: "${{ secrets.VAULT_SECRET_ID }}"
|
|
secrets: |
|
|
gitea/data/${{ inputs.registry }} username | DOCKER_USERNAME ;
|
|
gitea/data/${{ inputs.registry }} password | DOCKER_PASSWORD
|
|
- name: "Set up Docker Buildx"
|
|
id: "setup-docker-buildx"
|
|
uses: "docker/setup-buildx-action@v3"
|
|
with:
|
|
driver: "remote"
|
|
endpoint: "tcp://builder-01.bthlab:2375"
|
|
platforms: "linux/amd64"
|
|
append: |
|
|
- endpoint: "tcp://builder-mac-01.bthlab:2375"
|
|
platforms: "linux/arm64"
|
|
- name: "Login to Docker Registry"
|
|
uses: "docker/login-action@v3"
|
|
with:
|
|
registry: "${{ inputs.registry }}"
|
|
username: "${{ steps.import-secrets.outputs.DOCKER_USERNAME }}"
|
|
password: "${{ steps.import-secrets.outputs.DOCKER_PASSWORD }}"
|
|
- name: "Build `backend-aio` image"
|
|
env:
|
|
SHORT_SHA: "${{ steps.get-build-options.outputs.short-sha }}"
|
|
VERSION: "${{ steps.get-backend-version.outputs.version }}"
|
|
BUILD: "${{ steps.get-backend-version.outputs.build-number }}"
|
|
run: |
|
|
set -x
|
|
docker buildx build \
|
|
--cache-from "type=registry,ref=nexus.bthlab.bthlabs.net:8001/hotpocket" \
|
|
--cache-to "type=registry,ref=nexus.bthlab.bthlabs.net:8001/hotpocket,target=max" \
|
|
--push \
|
|
--platform "${{ inputs.platform }}" \
|
|
--build-arg IMAGE_ID="${{ inputs.target }}.${SHORT_SHA}" \
|
|
-f services/backend/Dockerfile \
|
|
--target "${{ inputs.target }}" \
|
|
-t "${{ inputs.registry }}/hotpocket/backend:${{ inputs.target }}-${VERSION}-${BUILD}" \
|
|
services/
|