diff --git a/.github/workflows/deploy-images-on-release.yml b/.github/workflows/deploy-images-on-release.yml new file mode 100644 index 000000000..521acab61 --- /dev/null +++ b/.github/workflows/deploy-images-on-release.yml @@ -0,0 +1,149 @@ +name: Distribution deploy + +on: + push: + tags: + - "v*" + workflow_dispatch: +jobs: + docker-build-and-push-client: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Extract version from tag + id: extract_tag + run: echo "version=${GITHUB_REF#refs/tags/}" >> "$GITHUB_OUTPUT" + + - name: Log in to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build Client Docker image + run: | + docker build \ + -t ghcr.io/bluewave-labs/checkmate-client:${{ steps.extract_tag.outputs.version }} \ + -f ./docker/dist/client.Dockerfile \ + --label org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate \ + . + + - name: Push Client Docker image + run: | + docker push ghcr.io/bluewave-labs/checkmate-client:${{ steps.extract_tag.outputs.version }} + + docker-build-and-push-server: + needs: docker-build-and-push-client + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Extract version + id: extract_tag + run: echo "version=${GITHUB_REF#refs/tags/}" >> "$GITHUB_OUTPUT" + + - name: Log in to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build Server Docker image + run: | + docker build \ + -t ghcr.io/bluewave-labs/checkmate-backend:${{ steps.extract_tag.outputs.version }} \ + -f ./docker/dist/server.Dockerfile \ + --label org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate \ + . + + - name: Push Server Docker image + run: | + docker push ghcr.io/bluewave-labs/checkmate-backend:${{ steps.extract_tag.outputs.version }} + + - name: Build Mongo Docker image + run: | + docker build \ + -t ghcr.io/bluewave-labs/checkmate-mongo:${{ steps.extract_tag.outputs.version }} \ + -f ./docker/dist/mongoDB.Dockerfile \ + --label org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate \ + . + + - name: Push MongoDB Docker image + run: | + docker push ghcr.io/bluewave-labs/checkmate-mongo:${{ steps.extract_tag.outputs.version }} + + - name: Build Redis Docker image + run: | + docker build \ + -t ghcr.io/bluewave-labs/checkmate-redis:${{ steps.extract_tag.outputs.version }} \ + -f ./docker/dist/redis.Dockerfile \ + --label org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate \ + . + + - name: Push Redis Docker image + run: | + docker push ghcr.io/bluewave-labs/checkmate-redis:${{ steps.extract_tag.outputs.version }} + + docker-build-and-push-server-mono-multiarch: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Extract version + id: extract_tag + run: echo "version=${GITHUB_REF#refs/tags/}" >> "$GITHUB_OUTPUT" + + - name: Log in to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push multi-arch Docker image + uses: docker/build-push-action@v5 + with: + context: . + file: ./docker/dist-arm/server.Dockerfile + push: true + tags: | + ghcr.io/bluewave-labs/checkmate-backend-mono-multiarch:${{ steps.extract_tag.outputs.version }} + platforms: linux/amd64,linux/arm64 + labels: | + org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate + + docker-build-and-push-server-mono: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Extract version + id: extract_tag + run: echo "version=${GITHUB_REF#refs/tags/}" >> "$GITHUB_OUTPUT" + + - name: Log in to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build Server Docker image + run: | + docker build \ + -t ghcr.io/bluewave-labs/checkmate-backend-mono:${{ steps.extract_tag.outputs.version }} \ + -f ./docker/dist-mono/server.Dockerfile \ + --label org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate \ + . + + - name: Push Server Docker image + run: docker push ghcr.io/bluewave-labs/checkmate-backend-mono:${{ steps.extract_tag.outputs.version }} diff --git a/.github/workflows/deploy-images.yml b/.github/workflows/deploy-images.yml new file mode 100644 index 000000000..bab2199a2 --- /dev/null +++ b/.github/workflows/deploy-images.yml @@ -0,0 +1,133 @@ +name: Distribution deploy + +on: + push: + branches: ["master"] + workflow_dispatch: +jobs: + docker-build-and-push-client: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Log in to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build Client Docker image + run: | + docker build \ + -t ghcr.io/bluewave-labs/checkmate-client:latest \ + -f ./docker/dist/client.Dockerfile \ + --label org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate \ + . + + - name: Push Client Docker image + run: | + docker push ghcr.io/bluewave-labs/checkmate-client:latest + + docker-build-and-push-server: + needs: docker-build-and-push-client + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Log in to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build Server Docker image + run: | + docker build \ + -t ghcr.io/bluewave-labs/checkmate-backend:latest \ + -f ./docker/dist/server.Dockerfile \ + --label org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate \ + . + + - name: Push Server Docker image + run: | + docker push ghcr.io/bluewave-labs/checkmate-backend:latest + + - name: Build Mongo Docker image + run: | + docker build \ + -t ghcr.io/bluewave-labs/checkmate-mongo:latest \ + -f ./docker/dist/mongoDB.Dockerfile \ + --label org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate \ + . + + - name: Push MongoDB Docker image + run: | + docker push ghcr.io/bluewave-labs/checkmate-mongo:latest + + - name: Build Redis Docker image + run: | + docker build \ + -t ghcr.io/bluewave-labs/checkmate-redis:latest \ + -f ./docker/dist/redis.Dockerfile \ + --label org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate \ + . + + - name: Push Redis Docker image + run: | + docker push ghcr.io/bluewave-labs/checkmate-redis:latest + + docker-build-and-push-server-mono-multiarch: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push multi-arch Docker image + uses: docker/build-push-action@v5 + with: + context: . + file: ./docker/dist-arm/server.Dockerfile + push: true + tags: | + ghcr.io/bluewave-labs/checkmate-backend-mono-multiarch:latest + platforms: linux/amd64,linux/arm64 + labels: | + org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate + + docker-build-and-push-server-mono: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Log in to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build Server Docker image + run: | + docker build \ + -t ghcr.io/bluewave-labs/checkmate-backend-mono:latest \ + -f ./docker/dist-mono/server.Dockerfile \ + --label org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate \ + . + + - name: Push Server Docker image + run: docker push ghcr.io/bluewave-labs/checkmate-backend-mono:latest diff --git a/.github/workflows/distribution-deploy.yml b/.github/workflows/distribution-deploy.yml deleted file mode 100644 index d4bcfc8b7..000000000 --- a/.github/workflows/distribution-deploy.yml +++ /dev/null @@ -1,80 +0,0 @@ -name: Distribution deploy - -on: - push: - branches: ["master"] - workflow_dispatch: -jobs: - docker-build-and-push-client: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Log in to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Build Client Docker image - run: | - docker build \ - -t ghcr.io/bluewave-labs/checkmate:frontend-dist \ - -f ./docker/dist/client.Dockerfile \ - --label org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate \ - . - - - name: Push Client Docker image - run: docker push ghcr.io/bluewave-labs/checkmate:frontend-dist - - docker-build-and-push-server: - needs: docker-build-and-push-client - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Log in to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Build Server Docker image - run: | - docker build \ - -t ghcr.io/bluewave-labs/checkmate:backend-dist \ - -f ./docker/dist/server.Dockerfile \ - --label org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate \ - . - - - name: Push Server Docker image - run: docker push ghcr.io/bluewave-labs/checkmate:backend-dist - - - name: Build Mongo Docker image - run: | - docker build \ - -t ghcr.io/bluewave-labs/checkmate:mongo-dist \ - -f ./docker/dist/mongoDB.Dockerfile \ - --label org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate \ - . - - - name: Push MongoDB Docker image - run: docker push ghcr.io/bluewave-labs/checkmate:mongo-dist - - - name: Build Redis Docker image - run: | - docker build \ - -t ghcr.io/bluewave-labs/checkmate:redis-dist \ - -f ./docker/dist/redis.Dockerfile \ - --label org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate \ - . - - - name: Push Redis Docker image - run: docker push ghcr.io/bluewave-labs/checkmate:redis-dist diff --git a/.github/workflows/distribution-mono-deploy-arm.yml b/.github/workflows/distribution-mono-deploy-arm.yml deleted file mode 100644 index 345cab560..000000000 --- a/.github/workflows/distribution-mono-deploy-arm.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: Distribution deploy - Monolithic Multiarch - -on: - push: - branches: ["master"] - workflow_dispatch: -jobs: - docker-build-and-push-server: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Log in to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Build and push multi-arch Docker image - uses: docker/build-push-action@v5 - with: - context: . - file: ./docker/dist-arm/server.Dockerfile - push: true - tags: ghcr.io/bluewave-labs/checkmate:backend-dist-mono-multiarch - platforms: linux/amd64,linux/arm64 - labels: | - org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate - - # - name: Build Server Docker image - # run: | - # docker build \ - # -t ghcr.io/bluewave-labs/checkmate:backend-dist-mono-multiarch \ - # -f ./docker/dist-arm/server.Dockerfile \ - # --label org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate \ - # . - - # - name: Push Server Docker image - # run: docker push ghcr.io/bluewave-labs/checkmate:backend-dist-mono-multiarch diff --git a/.github/workflows/distribution-mono-deploy.yml b/.github/workflows/distribution-mono-deploy.yml deleted file mode 100644 index 7dafbfc21..000000000 --- a/.github/workflows/distribution-mono-deploy.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Distribution deploy - Monolithic - -on: - push: - branches: ["master"] - workflow_dispatch: -jobs: - docker-build-and-push-server: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Log in to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Build Server Docker image - run: | - docker build \ - -t ghcr.io/bluewave-labs/checkmate:backend-dist-mono \ - -f ./docker/dist-mono/server.Dockerfile \ - --label org.opencontainers.image.source=https://github.com/bluewave-labs/checkmate \ - . - - - name: Push Server Docker image - run: docker push ghcr.io/bluewave-labs/checkmate:backend-dist-mono diff --git a/docker/dist-mono/docker-compose.yaml b/docker/dist-mono/docker-compose.yaml index 9b3364975..fd5d54ddc 100755 --- a/docker/dist-mono/docker-compose.yaml +++ b/docker/dist-mono/docker-compose.yaml @@ -1,6 +1,6 @@ services: server: - image: ghcr.io/bluewave-labs/checkmate:backend-dist-mono + image: ghcr.io/bluewave-labs/checkmate-backend-mono:latest restart: always ports: - "52345:52345" @@ -15,7 +15,7 @@ services: - redis - mongodb redis: - image: ghcr.io/bluewave-labs/checkmate:redis-dist + image: ghcr.io/bluewave-labs/checkmate-redis:latest restart: always volumes: - ./redis/data:/data @@ -26,7 +26,7 @@ services: retries: 5 start_period: 5s mongodb: - image: ghcr.io/bluewave-labs/checkmate:mongo-dist + image: ghcr.io/bluewave-labs/checkmate-mongo:latest restart: always command: ["mongod", "--quiet", "--replSet", "rs0", "--bind_ip_all"] volumes: diff --git a/docker/dist/docker-compose.yaml b/docker/dist/docker-compose.yaml index a5da9d021..a0d13d061 100755 --- a/docker/dist/docker-compose.yaml +++ b/docker/dist/docker-compose.yaml @@ -1,6 +1,6 @@ services: client: - image: ghcr.io/bluewave-labs/checkmate:frontend-dist + image: ghcr.io/bluewave-labs/checkmate-frontend:latest restart: always environment: UPTIME_APP_API_BASE_URL: "http://localhost:52345/api/v1" @@ -11,7 +11,7 @@ services: depends_on: - server server: - image: ghcr.io/bluewave-labs/checkmate:backend-dist + image: ghcr.io/bluewave-labs/checkmate-backend:latest restart: always ports: - "52345:52345" @@ -26,7 +26,7 @@ services: # volumes: # - /var/run/docker.sock:/var/run/docker.sock:ro redis: - image: ghcr.io/bluewave-labs/checkmate:redis-dist + image: ghcr.io/bluewave-labs/checkmate-redis:latest restart: always volumes: - ./redis/data:/data @@ -37,7 +37,7 @@ services: retries: 5 start_period: 5s mongodb: - image: ghcr.io/bluewave-labs/checkmate:mongo-dist + image: ghcr.io/bluewave-labs/checkmate-mongo:latest restart: always volumes: - ./mongo/data:/data/db