diff --git a/.github/workflows/build-branch.yml b/.github/workflows/build-branch.yml index 8e5835323..12acce26e 100644 --- a/.github/workflows/build-branch.yml +++ b/.github/workflows/build-branch.yml @@ -1,9 +1,6 @@ name: Branch Build on: - push: - branches: - - webhook-test pull_request: types: - closed @@ -19,7 +16,7 @@ env: jobs: branch_build_setup: - if: ${{ (github.event_name == 'pull_request' && github.event.action =='closed' && github.event.pull_request.merged == true) || (github.event_name == 'push' ) }} + if: ${{ (github.event_name == 'pull_request' && github.event.action =='closed' && github.event.pull_request.merged == true) }} name: Branch Build Setup runs-on: ubuntu-20.04 @@ -32,215 +29,216 @@ jobs: with: name: proxy-src-code path: ./nginx - # - name: Uploading Backend Source - # uses: actions/upload-artifact@v3 - # with: - # name: backend-src-code - # path: ./apiserver - # - name: Uploading Web Source - # uses: actions/upload-artifact@v3 - # with: - # name: web-src-code - # path: | - # ./ - # !./apiserver - # !./nginx - # !./deploy - # !./space - # - name: Uploading Space Source - # uses: actions/upload-artifact@v3 - # with: - # name: space-src-code - # path: | - # ./ - # !./apiserver - # !./nginx - # !./deploy - # !./web + - name: Uploading Backend Source + uses: actions/upload-artifact@v3 + with: + name: backend-src-code + path: ./apiserver + - name: Uploading Web Source + uses: actions/upload-artifact@v3 + with: + name: web-src-code + path: | + ./ + !./apiserver + !./nginx + !./deploy + !./space + - name: Uploading Space Source + uses: actions/upload-artifact@v3 + with: + name: space-src-code + path: | + ./ + !./apiserver + !./nginx + !./deploy + !./web outputs: gh_branch_name: ${{ env.TARGET_BRANCH }} - # branch_build_push_frontend: - # runs-on: ubuntu-20.04 - # needs: [branch_build_setup] - # env: - # FRONTEND_TAG: ${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend-private:${{ needs.branch_build_setup.outputs.gh_branch_name }} - # steps: - # - name: Set Frontend Docker Tag - # run: | - # if [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ]; then - # TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend-private:latest - # elif [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "release" ] || [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "preview" ]; then - # TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend-private:preview,${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend:preview - # else - # TAG=${{ env.FRONTEND_TAG }} - # fi - # echo "FRONTEND_TAG=${TAG}" >> $GITHUB_ENV - # - name: Set up Docker Buildx - # uses: docker/setup-buildx-action@v2.5.0 - - # - name: Login to Docker Hub - # uses: docker/login-action@v2.1.0 - # with: - # username: ${{ secrets.DOCKERHUB_USERNAME }} - # password: ${{ secrets.DOCKERHUB_TOKEN }} - # - name: Downloading Web Source Code - # uses: actions/download-artifact@v3 - # with: - # name: web-src-code - - # - name: Build and Push Frontend to Docker Container Registry - # uses: docker/build-push-action@v4.0.0 - # with: - # context: . - # file: ./web/Dockerfile.web - # platforms: linux/amd64 - # 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-private:${{ needs.branch_build_setup.outputs.gh_branch_name }} - # steps: - # - name: Set Space Docker Tag - # run: | - # if [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ]; then - # TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-space:latest - # elif [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "release" ] || [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "preview" ]; then - # TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-space-private:preview,${{ secrets.DOCKERHUB_USERNAME }}/plane-space:preview - # else - # TAG=${{ env.SPACE_TAG }} - # fi - # echo "SPACE_TAG=${TAG}" >> $GITHUB_ENV - # - name: Set up Docker Buildx - # uses: docker/setup-buildx-action@v2.5.0 - - # - name: Login to Docker Hub - # uses: docker/login-action@v2.1.0 - # with: - # username: ${{ secrets.DOCKERHUB_USERNAME }} - # password: ${{ secrets.DOCKERHUB_TOKEN }} - # - name: Downloading Space Source Code - # uses: actions/download-artifact@v3 - # with: - # name: space-src-code - - # - name: Build and Push Space to Docker Hub - # uses: docker/build-push-action@v4.0.0 - # with: - # context: . - # file: ./space/Dockerfile.space - # platforms: linux/amd64 - # 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-private:${{ needs.branch_build_setup.outputs.gh_branch_name }} - # steps: - # - name: Set Backend Docker Tag - # run: | - # if [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ]; then - # TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-backend-private:latest - # elif [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "release" ] || [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "preview" ]; then - # TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-backend-private:preview,${{ secrets.DOCKERHUB_USERNAME }}/plane-backend:preview - # else - # TAG=${{ env.BACKEND_TAG }} - # fi - # echo "BACKEND_TAG=${TAG}" >> $GITHUB_ENV - # - name: Set up Docker Buildx - # uses: docker/setup-buildx-action@v2.5.0 - - # - name: Login to Docker Hub - # uses: docker/login-action@v2.1.0 - # with: - # username: ${{ secrets.DOCKERHUB_USERNAME }} - # password: ${{ secrets.DOCKERHUB_TOKEN }} - # - name: Downloading Backend Source Code - # uses: actions/download-artifact@v3 - # with: - # name: backend-src-code - - # - name: Build and Push Backend to Docker Hub - # uses: docker/build-push-action@v4.0.0 - # with: - # context: . - # file: ./Dockerfile.api - # platforms: linux/amd64 - # 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-private:${{ needs.branch_build_setup.outputs.gh_branch_name }} - # steps: - # - name: Set Proxy Docker Tag - # run: | - # if [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ]; then - # TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy-private:latest - # elif [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "release" ] || [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "preview" ]; then - # TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy-private:preview,${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy:preview - # else - # TAG=${{ env.PROXY_TAG }} - # fi - # echo "PROXY_TAG=${TAG}" >> $GITHUB_ENV - # - name: Set up Docker Buildx - # uses: docker/setup-buildx-action@v2.5.0 - - # - name: Login to Docker Hub - # uses: docker/login-action@v2.1.0 - # with: - # username: ${{ secrets.DOCKERHUB_USERNAME }} - # password: ${{ secrets.DOCKERHUB_TOKEN }} - - # - name: Downloading Proxy Source Code - # uses: actions/download-artifact@v3 - # with: - # name: proxy-src-code - - # - name: Build and Push Plane-Proxy to Docker Hub - # uses: docker/build-push-action@v4.0.0 - # with: - # context: . - # file: ./Dockerfile - # platforms: linux/amd64 - # tags: ${{ env.PROXY_TAG }} - # push: true - # env: - # DOCKER_BUILDKIT: 1 - # DOCKER_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} - # DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }} - - branch_build_success_webhook: + branch_build_push_frontend: + name: Branch Build Push Frontend runs-on: ubuntu-20.04 needs: [branch_build_setup] - # needs: [branch_build_setup, branch_build_push_frontend, branch_build_push_space, branch_build_push_backend, branch_build_push_proxy] - if: ${{ (github.event_name == 'pull_request' && github.event.action =='closed' && github.event.pull_request.merged == true) || (github.event_name == 'push' ) }} + env: + FRONTEND_TAG: ${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend-private:${{ needs.branch_build_setup.outputs.gh_branch_name }} + steps: + - name: Set Frontend Docker Tag + run: | + if [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ]; then + TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend-private:latest + elif [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "release" ] || [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "preview" ]; then + TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend-private:preview,${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend:preview + else + TAG=${{ env.FRONTEND_TAG }} + fi + echo "FRONTEND_TAG=${TAG}" >> $GITHUB_ENV + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2.5.0 + + - name: Login to Docker Hub + uses: docker/login-action@v2.1.0 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Downloading Web Source Code + uses: actions/download-artifact@v3 + with: + name: web-src-code + + - name: Build and Push Frontend to Docker Container Registry + uses: docker/build-push-action@v4.0.0 + with: + context: . + file: ./web/Dockerfile.web + platforms: linux/amd64 + tags: ${{ env.FRONTEND_TAG }} + push: true + env: + DOCKER_BUILDKIT: 1 + DOCKER_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }} + + branch_build_push_space: + name: Branch Build Push Space + runs-on: ubuntu-20.04 + needs: [branch_build_setup] + env: + SPACE_TAG: ${{ secrets.DOCKERHUB_USERNAME }}/plane-space-private:${{ needs.branch_build_setup.outputs.gh_branch_name }} + steps: + - name: Set Space Docker Tag + run: | + if [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ]; then + TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-space:latest + elif [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "release" ] || [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "preview" ]; then + TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-space-private:preview,${{ secrets.DOCKERHUB_USERNAME }}/plane-space:preview + else + TAG=${{ env.SPACE_TAG }} + fi + echo "SPACE_TAG=${TAG}" >> $GITHUB_ENV + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2.5.0 + + - name: Login to Docker Hub + uses: docker/login-action@v2.1.0 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Downloading Space Source Code + uses: actions/download-artifact@v3 + with: + name: space-src-code + + - name: Build and Push Space to Docker Hub + uses: docker/build-push-action@v4.0.0 + with: + context: . + file: ./space/Dockerfile.space + platforms: linux/amd64 + tags: ${{ env.SPACE_TAG }} + push: true + env: + DOCKER_BUILDKIT: 1 + DOCKER_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }} + + branch_build_push_backend: + name: Branch Build Push Backend + runs-on: ubuntu-20.04 + needs: [branch_build_setup] + env: + BACKEND_TAG: ${{ secrets.DOCKERHUB_USERNAME }}/plane-backend-private:${{ needs.branch_build_setup.outputs.gh_branch_name }} + steps: + - name: Set Backend Docker Tag + run: | + if [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ]; then + TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-backend-private:latest + elif [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "release" ] || [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "preview" ]; then + TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-backend-private:preview,${{ secrets.DOCKERHUB_USERNAME }}/plane-backend:preview + else + TAG=${{ env.BACKEND_TAG }} + fi + echo "BACKEND_TAG=${TAG}" >> $GITHUB_ENV + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2.5.0 + + - name: Login to Docker Hub + uses: docker/login-action@v2.1.0 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Downloading Backend Source Code + uses: actions/download-artifact@v3 + with: + name: backend-src-code + + - name: Build and Push Backend to Docker Hub + uses: docker/build-push-action@v4.0.0 + with: + context: . + file: ./Dockerfile.api + platforms: linux/amd64 + push: true + tags: ${{ env.BACKEND_TAG }} + env: + DOCKER_BUILDKIT: 1 + DOCKER_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }} + + branch_build_push_proxy: + name: Branch Build Push Proxy + runs-on: ubuntu-20.04 + needs: [branch_build_setup] + env: + PROXY_TAG: ${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy-private:${{ needs.branch_build_setup.outputs.gh_branch_name }} + steps: + - name: Set Proxy Docker Tag + run: | + if [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ]; then + TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy-private:latest + elif [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "release" ] || [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "preview" ]; then + TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy-private:preview,${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy:preview + else + TAG=${{ env.PROXY_TAG }} + fi + echo "PROXY_TAG=${TAG}" >> $GITHUB_ENV + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2.5.0 + + - name: Login to Docker Hub + uses: docker/login-action@v2.1.0 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Downloading Proxy Source Code + uses: actions/download-artifact@v3 + with: + name: proxy-src-code + + - name: Build and Push Plane-Proxy to Docker Hub + uses: docker/build-push-action@v4.0.0 + with: + context: . + file: ./Dockerfile + platforms: linux/amd64 + tags: ${{ env.PROXY_TAG }} + push: true + env: + DOCKER_BUILDKIT: 1 + DOCKER_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }} + + branch_build_success_webhook: + name: Branch Build Success Webhook + runs-on: ubuntu-20.04 + needs: [branch_build_setup, branch_build_push_frontend, branch_build_push_space, branch_build_push_backend, branch_build_push_proxy] + if: ${{ secrets.WEBHOOK_URL && (github.event_name == 'pull_request' && github.event.action =='closed' && github.event.pull_request.merged == true) }} steps: - name: Send Success Webhook uses: distributhor/workflow-webhook@v3 with: - webhook_url: https://webhook.site/bac8185e-cb2e-4d32-8ee9-a674542c0d89 - # webhook_url: ${{ secrets.WEBHOOK_URL }} + webhook_url: ${{ secrets.WEBHOOK_URL }} data: '{"branch": "${{ needs.branch_build_setup.outputs.gh_branch_name }}", "status": "success" }' - # webhook_secret: "123123" - # webhook_secret: ${{ secrets.WEBHOOK_SECRET }}