mirror of
https://github.com/Unleash/unleash.git
synced 2025-08-13 13:48:59 +02:00
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
69 lines
2.5 KiB
YAML
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 }}
|