1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-08-13 13:48:59 +02:00
unleash.unleash/.github/workflows/docker_publish.yaml
Gastón Fournier 73d13a07c7
chore: improve release process (#7254)
Use the tag created by the build action when running npm version,
otherwise the checkout actions gets the HEAD of the commit that
triggered the original workflow resulting in the usage of the previous
version.

Potentially in the future, instead of triggering the build manually we
could consider using the tag as a trigger for the build process and then
all the dependent workflows should work fine. It's good we have this
manual for validation, and we workaround some of the limitations before
we invest more into more automation
2024-06-04 10:12:58 +02:00

69 lines
2.5 KiB
YAML

name: Publish to dockerhub
on:
push:
branches:
- main
paths-ignore:
- website/**
workflow_call:
inputs:
version:
description: "Which version to release"
type: 'string'
required: true
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
version: [18.18.2-alpine]
steps:
- name: Checkout tag v${{ inputs.version }}
if: ${{ inputs.version != '' }}
uses: actions/checkout@v4
with:
ref: v${{ inputs.version }} # tag that should be created by the caller workflow
- name: Checkout
if: ${{ inputs.version == '' }}
uses: actions/checkout@v4
- name: Setup QEmu so we can build multiplatform
uses: docker/setup-qemu-action@v2
- name: Setup Docker buildx
uses: docker/setup-buildx-action@v2
- name: Docker meta configuration
uses: docker/metadata-action@v5
id: meta
with:
images: |
unleashorg/unleash-server
tags: |
# only enabled for workflow dispatch except main (assume its a release):
type=semver,pattern={{ version }},enable=${{ github.event_name == 'workflow_dispatch' && github.ref != 'refs/heads/main' }},value=${{ inputs.version }}
type=semver,pattern={{ major }}.{{ minor }},enable=${{ github.event_name == 'workflow_dispatch' && github.ref != 'refs/heads/main' }},value=${{ inputs.version }}
type=semver,pattern={{ major }},enable=${{ github.event_name == 'workflow_dispatch' && github.ref != 'refs/heads/main' }},value=${{ inputs.version }}
# only enabled in main:
type=edge,prefix=main-,suffix=-${{ matrix.version }},enable=${{ github.ref == 'refs/heads/main' }}
# only enabled on workflow_dispatch:
type=sha,suffix=-${{ matrix.version }},enable=${{ github.event_name == 'workflow_dispatch' }}
- name: Login to docker hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build frontend
run: |
yarn --cwd ./frontend install
yarn build:frontend
- name: Build tag and push image to Docker hub
uses: docker/build-push-action@v5
with:
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: NODE_VERSION=${{ matrix.version }}