diff --git a/.github/workflows/build-branch.yml b/.github/workflows/build-branch.yml index a847b06a6..d3e501a44 100644 --- a/.github/workflows/build-branch.yml +++ b/.github/workflows/build-branch.yml @@ -2,6 +2,12 @@ name: Branch Build on: workflow_dispatch: + inputs: + arm64: + description: "Build for ARM64 architecture" + required: false + default: false + type: boolean push: branches: - master @@ -11,6 +17,8 @@ on: env: TARGET_BRANCH: ${{ github.ref_name || github.event.release.target_commitish }} + ARM64_BUILD: ${{ github.event.inputs.arm64 }} + IS_PRERELEASE: ${{ github.event.release.prerelease }} jobs: branch_build_setup: @@ -28,12 +36,13 @@ jobs: build_space: ${{ steps.changed_files.outputs.space_any_changed }} build_web: ${{ steps.changed_files.outputs.web_any_changed }} build_live: ${{ steps.changed_files.outputs.live_any_changed }} + flat_branch_name: ${{ steps.set_env_variables.outputs.FLAT_BRANCH_NAME }} steps: - id: set_env_variables name: Set Environment Variables run: | - if [ "${{ env.TARGET_BRANCH }}" == "master" ] || [ "${{ github.event_name }}" == "release" ]; then + if [ "${{ env.TARGET_BRANCH }}" == "master" ] || [ "${{ env.ARM64_BUILD }}" == "true" ] || ([ "${{ github.event_name }}" == "release" ] && [ "${{ env.IS_PRERELEASE }}" != "true" ]); then echo "BUILDX_DRIVER=cloud" >> $GITHUB_OUTPUT echo "BUILDX_VERSION=lab:latest" >> $GITHUB_OUTPUT echo "BUILDX_PLATFORMS=linux/amd64,linux/arm64" >> $GITHUB_OUTPUT @@ -45,6 +54,8 @@ jobs: echo "BUILDX_ENDPOINT=" >> $GITHUB_OUTPUT fi echo "TARGET_BRANCH=${{ env.TARGET_BRANCH }}" >> $GITHUB_OUTPUT + flat_branch_name=$(echo ${{ env.TARGET_BRANCH }} | sed 's/[^a-zA-Z0-9\._]/-/g') + echo "FLAT_BRANCH_NAME=${flat_branch_name}" >> $GITHUB_OUTPUT - id: checkout_files name: Checkout Files @@ -90,10 +101,11 @@ jobs: branch_build_push_web: if: ${{ needs.branch_build_setup.outputs.build_web == 'true' || github.event_name == 'workflow_dispatch' || github.event_name == 'release' || needs.branch_build_setup.outputs.gh_branch_name == 'master' }} + name: Build-Push Web Docker Image runs-on: ubuntu-20.04 needs: [branch_build_setup] env: - FRONTEND_TAG: makeplane/plane-frontend:${{ needs.branch_build_setup.outputs.gh_branch_name }} + FRONTEND_TAG: makeplane/plane-frontend:${{ needs.branch_build_setup.outputs.flat_branch_name }} TARGET_BRANCH: ${{ needs.branch_build_setup.outputs.gh_branch_name }} BUILDX_DRIVER: ${{ needs.branch_build_setup.outputs.gh_buildx_driver }} BUILDX_VERSION: ${{ needs.branch_build_setup.outputs.gh_buildx_version }} @@ -103,7 +115,10 @@ jobs: - name: Set Frontend Docker Tag run: | if [ "${{ github.event_name }}" == "release" ]; then - TAG=makeplane/plane-frontend:stable,makeplane/plane-frontend:${{ github.event.release.tag_name }} + TAG=makeplane/plane-frontend:${{ github.event.release.tag_name }} + if [ "${{ env.IS_PRERELEASE }}" != "true" ]; then + TAG=${TAG},makeplane/plane-frontend:stable + fi elif [ "${{ env.TARGET_BRANCH }}" == "master" ]; then TAG=makeplane/plane-frontend:latest else @@ -142,10 +157,11 @@ jobs: branch_build_push_admin: if: ${{ needs.branch_build_setup.outputs.build_admin== 'true' || github.event_name == 'workflow_dispatch' || github.event_name == 'release' || needs.branch_build_setup.outputs.gh_branch_name == 'master' }} + name: Build-Push Admin Docker Image runs-on: ubuntu-20.04 needs: [branch_build_setup] env: - ADMIN_TAG: makeplane/plane-admin:${{ needs.branch_build_setup.outputs.gh_branch_name }} + ADMIN_TAG: makeplane/plane-admin:${{ needs.branch_build_setup.outputs.flat_branch_name }} TARGET_BRANCH: ${{ needs.branch_build_setup.outputs.gh_branch_name }} BUILDX_DRIVER: ${{ needs.branch_build_setup.outputs.gh_buildx_driver }} BUILDX_VERSION: ${{ needs.branch_build_setup.outputs.gh_buildx_version }} @@ -155,7 +171,10 @@ jobs: - name: Set Admin Docker Tag run: | if [ "${{ github.event_name }}" == "release" ]; then - TAG=makeplane/plane-admin:stable,makeplane/plane-admin:${{ github.event.release.tag_name }} + TAG=makeplane/plane-admin:${{ github.event.release.tag_name }} + if [ "${{ env.IS_PRERELEASE }}" != "true" ]; then + TAG=${TAG},makeplane/plane-admin:stable + fi elif [ "${{ env.TARGET_BRANCH }}" == "master" ]; then TAG=makeplane/plane-admin:latest else @@ -194,10 +213,11 @@ jobs: branch_build_push_space: if: ${{ needs.branch_build_setup.outputs.build_space == 'true' || github.event_name == 'workflow_dispatch' || github.event_name == 'release' || needs.branch_build_setup.outputs.gh_branch_name == 'master' }} + name: Build-Push Space Docker Image runs-on: ubuntu-20.04 needs: [branch_build_setup] env: - SPACE_TAG: makeplane/plane-space:${{ needs.branch_build_setup.outputs.gh_branch_name }} + SPACE_TAG: makeplane/plane-space:${{ needs.branch_build_setup.outputs.flat_branch_name }} TARGET_BRANCH: ${{ needs.branch_build_setup.outputs.gh_branch_name }} BUILDX_DRIVER: ${{ needs.branch_build_setup.outputs.gh_buildx_driver }} BUILDX_VERSION: ${{ needs.branch_build_setup.outputs.gh_buildx_version }} @@ -207,7 +227,10 @@ jobs: - name: Set Space Docker Tag run: | if [ "${{ github.event_name }}" == "release" ]; then - TAG=makeplane/plane-space:stable,makeplane/plane-space:${{ github.event.release.tag_name }} + TAG=makeplane/plane-space:${{ github.event.release.tag_name }} + if [ "${{ env.IS_PRERELEASE }}" != "true" ]; then + TAG=${TAG},makeplane/plane-space:stable + fi elif [ "${{ env.TARGET_BRANCH }}" == "master" ]; then TAG=makeplane/plane-space:latest else @@ -246,10 +269,11 @@ jobs: branch_build_push_apiserver: if: ${{ needs.branch_build_setup.outputs.build_apiserver == 'true' || github.event_name == 'workflow_dispatch' || github.event_name == 'release' || needs.branch_build_setup.outputs.gh_branch_name == 'master' }} + name: Build-Push API Server Docker Image runs-on: ubuntu-20.04 needs: [branch_build_setup] env: - BACKEND_TAG: makeplane/plane-backend:${{ needs.branch_build_setup.outputs.gh_branch_name }} + BACKEND_TAG: makeplane/plane-backend:${{ needs.branch_build_setup.outputs.flat_branch_name }} TARGET_BRANCH: ${{ needs.branch_build_setup.outputs.gh_branch_name }} BUILDX_DRIVER: ${{ needs.branch_build_setup.outputs.gh_buildx_driver }} BUILDX_VERSION: ${{ needs.branch_build_setup.outputs.gh_buildx_version }} @@ -259,7 +283,10 @@ jobs: - name: Set Backend Docker Tag run: | if [ "${{ github.event_name }}" == "release" ]; then - TAG=makeplane/plane-backend:stable,makeplane/plane-backend:${{ github.event.release.tag_name }} + TAG=makeplane/plane-backend:${{ github.event.release.tag_name }} + if [ "${{ env.IS_PRERELEASE }}" != "true" ]; then + TAG=${TAG},makeplane/plane-backend:stable + fi elif [ "${{ env.TARGET_BRANCH }}" == "master" ]; then TAG=makeplane/plane-backend:latest else @@ -298,10 +325,11 @@ jobs: branch_build_push_live: if: ${{ needs.branch_build_setup.outputs.build_live == 'true' || github.event_name == 'workflow_dispatch' || github.event_name == 'release' || needs.branch_build_setup.outputs.gh_branch_name == 'master' }} + name: Build-Push Live Collaboration Docker Image runs-on: ubuntu-20.04 needs: [branch_build_setup] env: - LIVE_TAG: makeplane/plane-live:${{ needs.branch_build_setup.outputs.gh_branch_name }} + LIVE_TAG: makeplane/plane-live:${{ needs.branch_build_setup.outputs.flat_branch_name }} TARGET_BRANCH: ${{ needs.branch_build_setup.outputs.gh_branch_name }} BUILDX_DRIVER: ${{ needs.branch_build_setup.outputs.gh_buildx_driver }} BUILDX_VERSION: ${{ needs.branch_build_setup.outputs.gh_buildx_version }} @@ -311,7 +339,10 @@ jobs: - name: Set Live Docker Tag run: | if [ "${{ github.event_name }}" == "release" ]; then - TAG=makeplane/plane-live:stable,makeplane/plane-live:${{ github.event.release.tag_name }} + TAG=makeplane/plane-live:${{ github.event.release.tag_name }} + if [ "${{ github.event.release.prerelease }}" != "true" ]; then + TAG=${TAG},makeplane/plane-live:stable + fi elif [ "${{ env.TARGET_BRANCH }}" == "master" ]; then TAG=makeplane/plane-live:latest else @@ -350,10 +381,11 @@ jobs: branch_build_push_proxy: if: ${{ needs.branch_build_setup.outputs.build_proxy == 'true' || github.event_name == 'workflow_dispatch' || github.event_name == 'release' || needs.branch_build_setup.outputs.gh_branch_name == 'master' }} + name: Build-Push Proxy Docker Image runs-on: ubuntu-20.04 needs: [branch_build_setup] env: - PROXY_TAG: makeplane/plane-proxy:${{ needs.branch_build_setup.outputs.gh_branch_name }} + PROXY_TAG: makeplane/plane-proxy:${{ needs.branch_build_setup.outputs.flat_branch_name }} TARGET_BRANCH: ${{ needs.branch_build_setup.outputs.gh_branch_name }} BUILDX_DRIVER: ${{ needs.branch_build_setup.outputs.gh_buildx_driver }} BUILDX_VERSION: ${{ needs.branch_build_setup.outputs.gh_buildx_version }} @@ -363,7 +395,10 @@ jobs: - name: Set Proxy Docker Tag run: | if [ "${{ github.event_name }}" == "release" ]; then - TAG=makeplane/plane-proxy:stable,makeplane/plane-proxy:${{ github.event.release.tag_name }} + TAG=makeplane/plane-proxy:${{ github.event.release.tag_name }} + if [ "${{ env.IS_PRERELEASE }}" != "true" ]; then + TAG=${TAG},makeplane/plane-proxy:stable + fi elif [ "${{ env.TARGET_BRANCH }}" == "master" ]; then TAG=makeplane/plane-proxy:latest else