diff --git a/.github/workflows/push-image-backend.yml b/.github/workflows/push-image-backend.yml index 95d93f813..9ca34790b 100644 --- a/.github/workflows/push-image-backend.yml +++ b/.github/workflows/push-image-backend.yml @@ -1,12 +1,11 @@ name: Build and Push Backend Docker Image on: - push: - branches: - - 'develop' - - 'master' - tags: - - '*' + pull_request: + types: [closed] + branches: [develop] + release: + types: [released] jobs: build_push_backend: @@ -17,61 +16,42 @@ jobs: - name: Check out the repo uses: actions/checkout@v3.3.0 - - name: Set up QEMU - uses: docker/setup-qemu-action@v2.1.0 - with: - platforms: linux/arm64,linux/amd64 - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2.5.0 - - name: Login to GitHub Container Registry - uses: docker/login-action@v2.1.0 - with: - registry: "ghcr.io" - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - name: Login to Docker Hub uses: docker/login-action@v2.1.0 with: - registry: "registry.hub.docker.com" username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} - - - name: Extract metadata (tags, labels) for Docker (Docker Hub) - id: ghmeta + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker (Docker Hub) from Github Pull Request + id: meta_pr + if: ${{ github.event_name == 'pull_request' }} uses: docker/metadata-action@v4.3.0 with: - images: makeplane/plane-backend + images: ${{ secrets.DOCKERHUB_USERNAME }}/plane-backend + tags: type=raw,value=develop - - name: Extract metadata (tags, labels) for Docker (Github) - id: dkrmeta + - name: Extract metadata (tags, labels) for Docker (Docker Hub) from Github Release + id: meta uses: docker/metadata-action@v4.3.0 + if: ${{ github.event_name == 'release' }} with: - images: ghcr.io/${{ github.repository }}-backend - - - name: Build and Push to GitHub Container Registry - uses: docker/build-push-action@v4.0.0 - with: - context: ./apiserver - file: ./apiserver/Dockerfile.api - platforms: linux/arm64,linux/amd64 - push: true - cache-from: type=gha - cache-to: type=gha - tags: ${{ steps.ghmeta.outputs.tags }} - labels: ${{ steps.ghmeta.outputs.labels }} + images: ${{ secrets.DOCKERHUB_USERNAME }}/plane-backend + tags: | + type=ref,event=tag - name: Build and Push to Docker Hub uses: docker/build-push-action@v4.0.0 with: context: ./apiserver file: ./apiserver/Dockerfile.api - platforms: linux/arm64,linux/amd64 + platforms: linux/amd64 push: true - cache-from: type=gha - cache-to: type=gha - tags: ${{ steps.dkrmeta.outputs.tags }} - labels: ${{ steps.dkrmeta.outputs.labels }} + tags: ${{ github.event_name == 'release' && steps.meta.outputs.tags || steps.meta_pr.outputs.tags }} + env: + DOCKER_BUILDKIT: 1 + DOCKER_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKET_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.github/workflows/push-image-deploy.yml b/.github/workflows/push-image-deploy.yml new file mode 100644 index 000000000..4a689bd29 --- /dev/null +++ b/.github/workflows/push-image-deploy.yml @@ -0,0 +1,57 @@ +name: Build and Push Plane Deploy Docker Image + +on: + pull_request: + types: [closed] + branches: [develop] + release: + types: [released] + +jobs: + build_push_plane_deploy: + name: Build and Push Plane Deploy Docker Image + runs-on: ubuntu-20.04 + + steps: + - name: Check out the repo + uses: actions/checkout@v3.3.0 + + - 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: Extract metadata (tags, labels) for Docker (Docker Hub) from Github Pull Request + id: meta_pr + if: ${{ github.event_name == 'pull_request' }} + uses: docker/metadata-action@v4.3.0 + with: + images: ${{ secrets.DOCKERHUB_USERNAME }}/plane-deploy + tags: type=raw,value=develop + + - name: Extract metadata (tags, labels) for Docker (Docker Hub) from Github Release + id: meta + uses: docker/metadata-action@v4.3.0 + if: ${{ github.event_name == 'release' }} + with: + images: ${{ secrets.DOCKERHUB_USERNAME }}/plane-deploy + tags: | + type=ref,event=tag + + - name: Build and Push to Docker Hub + uses: docker/build-push-action@v4.0.0 + with: + context: . + file: ./apps/space/Dockerfile.space + platforms: linux/amd64 + push: true + tags: ${{ github.event_name == 'release' && steps.meta.outputs.tags || steps.meta_pr.outputs.tags }} + env: + DOCKER_BUILDKIT: 1 + DOCKER_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKET_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }} + diff --git a/.github/workflows/push-image-frontend.yml b/.github/workflows/push-image-frontend.yml index cbd742511..69d24e128 100644 --- a/.github/workflows/push-image-frontend.yml +++ b/.github/workflows/push-image-frontend.yml @@ -1,77 +1,60 @@ name: Build and Push Frontend Docker Image on: - push: - branches: - - 'develop' - - 'master' - tags: - - '*' + pull_request: + types: [closed] + branches: [develop] + release: + types: [released] jobs: build_push_frontend: name: Build Frontend Docker Image runs-on: ubuntu-20.04 - steps: - name: Check out the repo uses: actions/checkout@v3.3.0 - - name: Set up QEMU - uses: docker/setup-qemu-action@v2.1.0 - with: - platforms: linux/arm64,linux/amd64 - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2.5.0 - - - name: Login to Github Container Registry - uses: docker/login-action@v2.1.0 - with: - registry: "ghcr.io" - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} + + - name: Setup .npmrc for repository + run: | + echo -e "@tiptap-pro:registry=https://registry.tiptap.dev/\n//registry.tiptap.dev/:_authToken=${{ secrets.TIPTAP_TOKEN }}" > .npmrc - name: Login to Docker Hub uses: docker/login-action@v2.1.0 with: - registry: "registry.hub.docker.com" username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} - - - name: Extract metadata (tags, labels) for Docker (Docker Hub) - id: ghmeta - uses: docker/metadata-action@v4.3.0 - with: - images: makeplane/plane-frontend + password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Extract metadata (tags, labels) for Docker (Github) + - name: Extract metadata (tags, labels) for Docker (Docker Hub) from Github Release id: meta + if: ${{ github.event_name == 'release' }} uses: docker/metadata-action@v4.3.0 with: - images: ghcr.io/${{ github.repository }}-frontend + images: ${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend + tags: | + type=ref,event=tag - - name: Build and Push to GitHub Container Registry - uses: docker/build-push-action@v4.0.0 + - name: Extract metadata (tags, labels) for Docker (Docker Hub) from Github Pull Request + id: meta_pr + if: ${{ github.event_name == 'pull_request' }} + uses: docker/metadata-action@v4.3.0 with: - context: . - file: ./apps/app/Dockerfile.web - platforms: linux/arm64,linux/amd64 - push: true - cache-from: type=gha - cache-to: type=gha - tags: ${{ steps.ghmeta.outputs.tags }} - labels: ${{ steps.ghmeta.outputs.labels }} + images: ${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend + tags: type=raw,value=develop - name: Build and Push to Docker Container Registry uses: docker/build-push-action@v4.0.0 with: context: . file: ./apps/app/Dockerfile.web - platforms: linux/arm64,linux/amd64 + platforms: linux/amd64 + tags: ${{ github.event_name == 'release' && steps.meta.outputs.tags || steps.meta_pr.outputs.tags }} push: true - cache-from: type=gha - cache-to: type=gha - tags: ${{ steps.dkrmeta.outputs.tags }} - labels: ${{ steps.dkrmeta.outputs.labels }} + env: + DOCKER_BUILDKIT: 1 + DOCKER_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKET_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.github/workflows/push-image-proxy.yml b/.github/workflows/push-image-proxy.yml new file mode 100644 index 000000000..e053c8aa9 --- /dev/null +++ b/.github/workflows/push-image-proxy.yml @@ -0,0 +1,56 @@ +name: Build and Push Proxy Docker Image + +on: + pull_request: + types: [closed] + branches: [develop] + release: + types: [released] + +jobs: + build_push_proxy: + name: Build and Push Proxy Docker Image + runs-on: ubuntu-20.04 + + steps: + - name: Check out the repo + uses: actions/checkout@v3.3.0 + + - 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: Extract metadata (tags, labels) for Docker (Docker Hub) from Github Pull Request + id: meta_pr + if: ${{ github.event_name == 'pull_request' }} + uses: docker/metadata-action@v4.3.0 + with: + images: ${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy + tags: type=raw,value=develop + + - name: Extract metadata (tags, labels) for Docker (Docker Hub) from Github Release + id: meta + uses: docker/metadata-action@v4.3.0 + if: ${{ github.event_name == 'release' }} + with: + images: ${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy + tags: | + type=ref,event=tag + + - name: Build and Push to Docker Hub + uses: docker/build-push-action@v4.0.0 + with: + context: ./nginx + file: ./nginx/Dockerfile + platforms: linux/amd64 + push: true + tags: ${{ github.event_name == 'release' && steps.meta.outputs.tags || steps.meta_pr.outputs.tags }} + env: + DOCKER_BUILDKIT: 1 + DOCKER_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKET_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}