Merge pull request #3697 from makeplane/preview #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Branch Build | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- master | |
- preview | |
- develop | |
release: | |
types: [released, prereleased] | |
env: | |
TARGET_BRANCH: ${{ github.ref_name || github.event.release.target_commitish }} | |
jobs: | |
branch_build_setup: | |
name: Build-Push Web/Space/API/Proxy Docker Image | |
runs-on: ubuntu-latest | |
outputs: | |
gh_branch_name: ${{ steps.set_env_variables.outputs.TARGET_BRANCH }} | |
gh_buildx_driver: ${{ steps.set_env_variables.outputs.BUILDX_DRIVER }} | |
gh_buildx_version: ${{ steps.set_env_variables.outputs.BUILDX_VERSION }} | |
gh_buildx_platforms: ${{ steps.set_env_variables.outputs.BUILDX_PLATFORMS }} | |
gh_buildx_endpoint: ${{ steps.set_env_variables.outputs.BUILDX_ENDPOINT }} | |
steps: | |
- id: set_env_variables | |
name: Set Environment Variables | |
run: | | |
if [ "${{ env.TARGET_BRANCH }}" == "master" ] || [ "${{ github.event_name }}" == "release" ]; then | |
echo "BUILDX_DRIVER=cloud" >> $GITHUB_OUTPUT | |
echo "BUILDX_VERSION=lab:latest" >> $GITHUB_OUTPUT | |
echo "BUILDX_PLATFORMS=linux/amd64,linux/arm64" >> $GITHUB_OUTPUT | |
echo "BUILDX_ENDPOINT=makeplane/plane-dev" >> $GITHUB_OUTPUT | |
else | |
echo "BUILDX_DRIVER=docker-container" >> $GITHUB_OUTPUT | |
echo "BUILDX_VERSION=latest" >> $GITHUB_OUTPUT | |
echo "BUILDX_PLATFORMS=linux/amd64" >> $GITHUB_OUTPUT | |
echo "BUILDX_ENDPOINT=" >> $GITHUB_OUTPUT | |
fi | |
echo "TARGET_BRANCH=${{ env.TARGET_BRANCH }}" >> $GITHUB_OUTPUT | |
branch_build_push_frontend: | |
runs-on: ubuntu-20.04 | |
needs: [branch_build_setup] | |
env: | |
FRONTEND_TAG: ${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend:${{ needs.branch_build_setup.outputs.gh_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 }} | |
BUILDX_PLATFORMS: ${{ needs.branch_build_setup.outputs.gh_buildx_platforms }} | |
BUILDX_ENDPOINT: ${{ needs.branch_build_setup.outputs.gh_buildx_endpoint }} | |
steps: | |
- name: Set Frontend Docker Tag | |
run: | | |
if [ "${{ github.event_name }}" == "release" ]; then | |
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend:latest,${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend:${{ github.event.release.tag_name }} | |
elif [ "${{ env.TARGET_BRANCH }}" == "master" ]; then | |
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend:stable | |
else | |
TAG=${{ env.FRONTEND_TAG }} | |
fi | |
echo "FRONTEND_TAG=${TAG}" >> $GITHUB_ENV | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
with: | |
driver: ${{ env.BUILDX_DRIVER }} | |
version: ${{ env.BUILDX_VERSION }} | |
endpoint: ${{ env.BUILDX_ENDPOINT }} | |
- name: Check out the repo | |
uses: actions/[email protected] | |
- name: Build and Push Frontend to Docker Container Registry | |
uses: docker/[email protected] | |
with: | |
context: . | |
file: ./web/Dockerfile.web | |
platforms: ${{ env.BUILDX_PLATFORMS }} | |
tags: ${{ env.FRONTEND_TAG }} | |
push: true | |
env: | |
DOCKER_BUILDKIT: 1 | |
DOCKER_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} | |
DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }} | |
branch_build_push_space: | |
runs-on: ubuntu-20.04 | |
needs: [branch_build_setup] | |
env: | |
SPACE_TAG: ${{ secrets.DOCKERHUB_USERNAME }}/plane-space:${{ needs.branch_build_setup.outputs.gh_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 }} | |
BUILDX_PLATFORMS: ${{ needs.branch_build_setup.outputs.gh_buildx_platforms }} | |
BUILDX_ENDPOINT: ${{ needs.branch_build_setup.outputs.gh_buildx_endpoint }} | |
steps: | |
- name: Set Space Docker Tag | |
run: | | |
if [ "${{ github.event_name }}" == "release" ]; then | |
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-space:latest,${{ secrets.DOCKERHUB_USERNAME }}/plane-space:${{ github.event.release.tag_name }} | |
elif [ "${{ env.TARGET_BRANCH }}" == "master" ]; then | |
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-space:stable | |
else | |
TAG=${{ env.SPACE_TAG }} | |
fi | |
echo "SPACE_TAG=${TAG}" >> $GITHUB_ENV | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
with: | |
driver: ${{ env.BUILDX_DRIVER }} | |
version: ${{ env.BUILDX_VERSION }} | |
endpoint: ${{ env.BUILDX_ENDPOINT }} | |
- name: Check out the repo | |
uses: actions/[email protected] | |
- name: Build and Push Space to Docker Hub | |
uses: docker/[email protected] | |
with: | |
context: . | |
file: ./space/Dockerfile.space | |
platforms: ${{ env.BUILDX_PLATFORMS }} | |
tags: ${{ env.SPACE_TAG }} | |
push: true | |
env: | |
DOCKER_BUILDKIT: 1 | |
DOCKER_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} | |
DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }} | |
branch_build_push_backend: | |
runs-on: ubuntu-20.04 | |
needs: [branch_build_setup] | |
env: | |
BACKEND_TAG: ${{ secrets.DOCKERHUB_USERNAME }}/plane-backend:${{ needs.branch_build_setup.outputs.gh_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 }} | |
BUILDX_PLATFORMS: ${{ needs.branch_build_setup.outputs.gh_buildx_platforms }} | |
BUILDX_ENDPOINT: ${{ needs.branch_build_setup.outputs.gh_buildx_endpoint }} | |
steps: | |
- name: Set Backend Docker Tag | |
run: | | |
if [ "${{ github.event_name }}" == "release" ]; then | |
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-backend:latest,${{ secrets.DOCKERHUB_USERNAME }}/plane-backend:${{ github.event.release.tag_name }} | |
elif [ "${{ env.TARGET_BRANCH }}" == "master" ]; then | |
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-backend:stable | |
else | |
TAG=${{ env.BACKEND_TAG }} | |
fi | |
echo "BACKEND_TAG=${TAG}" >> $GITHUB_ENV | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
with: | |
driver: ${{ env.BUILDX_DRIVER }} | |
version: ${{ env.BUILDX_VERSION }} | |
endpoint: ${{ env.BUILDX_ENDPOINT }} | |
- name: Check out the repo | |
uses: actions/[email protected] | |
- name: Build and Push Backend to Docker Hub | |
uses: docker/[email protected] | |
with: | |
context: ./apiserver | |
file: ./apiserver/Dockerfile.api | |
platforms: ${{ env.BUILDX_PLATFORMS }} | |
push: true | |
tags: ${{ env.BACKEND_TAG }} | |
env: | |
DOCKER_BUILDKIT: 1 | |
DOCKER_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} | |
DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }} | |
branch_build_push_proxy: | |
runs-on: ubuntu-20.04 | |
needs: [branch_build_setup] | |
env: | |
PROXY_TAG: ${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy:${{ needs.branch_build_setup.outputs.gh_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 }} | |
BUILDX_PLATFORMS: ${{ needs.branch_build_setup.outputs.gh_buildx_platforms }} | |
BUILDX_ENDPOINT: ${{ needs.branch_build_setup.outputs.gh_buildx_endpoint }} | |
steps: | |
- name: Set Proxy Docker Tag | |
run: | | |
if [ "${{ github.event_name }}" == "release" ]; then | |
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy:latest,${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy:${{ github.event.release.tag_name }} | |
elif [ "${{ env.TARGET_BRANCH }}" == "master" ]; then | |
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy:stable | |
else | |
TAG=${{ env.PROXY_TAG }} | |
fi | |
echo "PROXY_TAG=${TAG}" >> $GITHUB_ENV | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
with: | |
driver: ${{ env.BUILDX_DRIVER }} | |
version: ${{ env.BUILDX_VERSION }} | |
endpoint: ${{ env.BUILDX_ENDPOINT }} | |
- name: Check out the repo | |
uses: actions/[email protected] | |
- name: Build and Push Plane-Proxy to Docker Hub | |
uses: docker/[email protected] | |
with: | |
context: ./nginx | |
file: ./nginx/Dockerfile | |
platforms: ${{ env.BUILDX_PLATFORMS }} | |
tags: ${{ env.PROXY_TAG }} | |
push: true | |
env: | |
DOCKER_BUILDKIT: 1 | |
DOCKER_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} | |
DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }} | |