From 953208498d8c0d96eb5ebdde76fec3f7343d6d13 Mon Sep 17 00:00:00 2001 From: brtfx Date: Fri, 7 Nov 2025 14:55:22 +0100 Subject: [PATCH 1/4] remove gitlab-ci.yml --- .gitlab-ci.yml | 70 -------------------------------------------------- 1 file changed, 70 deletions(-) delete mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index c1c424e..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,70 +0,0 @@ -stages: - - build - - deploy - -variables: - DOCKER_TLS_CERTDIR: "" - -build: - stage: build - image: docker:27.3.1 - services: - - name: docker:27.3.1-dind - command: ["--tls=false"] - script: - - docker build . - except: - - tags - - main - - /^hotfix-.*$/ - -build_and_publish_docker_image: - stage: build - image: docker:27.3.1 - services: - - name: docker:27.3.1-dind - command: ["--tls=false"] - script: - - export IMAGE_ID=$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA - - export DEV_IMAGE_ID=$CI_REGISTRY_IMAGE:dev - - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - - docker build -t $IMAGE_ID -t $DEV_IMAGE_ID . - - docker push $IMAGE_ID - - docker push $DEV_IMAGE_ID - except: - - tags - only: - - main - - /^hotfix-.*$/ - -tag_docker_image: - stage: build - image: docker:27.3.1 - services: - - name: docker:27.3.1-dind - command: ["--tls=false"] - script: - - export IMAGE_ID=$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA - - export IMAGE_TAG_ID=$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG - - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - - docker pull $IMAGE_ID - - docker tag $IMAGE_ID $IMAGE_TAG_ID - - docker push $IMAGE_TAG_ID - except: - - branches - only: - - tags - -deploy_to_dev: - stage: deploy - image: curlimages/curl:latest - script: - - export IMAGE_VERSION=${CI_COMMIT_TAG:-$CI_COMMIT_SHORT_SHA} - - 'curl --fail-with-body -H "X-Token: $DEV_TOKEN" https://apps.test.simplito.com/api/deploy?image_version=$IMAGE_VERSION' - only: - - main - - /^hotfix-.*$/ - - tags - environment: - name: dev - url: https://dfinfra.test.simplito.com/ From bcd13d9d94f8e2f520826e9cbb1fbd1c92773fc9 Mon Sep 17 00:00:00 2001 From: brtfx Date: Fri, 7 Nov 2025 14:55:29 +0100 Subject: [PATCH 2/4] add github actions workflows --- .github/workflows/build-dev.yml | 31 ++++++++++++++++++++++++ .github/workflows/build-prod.yml | 41 ++++++++++++++++++++++++++++++++ .github/workflows/deploy-dev.yml | 39 ++++++++++++++++++++++++++++++ .github/workflows/tag.yml | 40 +++++++++++++++++++++++++++++++ 4 files changed, 151 insertions(+) create mode 100644 .github/workflows/build-dev.yml create mode 100644 .github/workflows/build-prod.yml create mode 100644 .github/workflows/deploy-dev.yml create mode 100644 .github/workflows/tag.yml diff --git a/.github/workflows/build-dev.yml b/.github/workflows/build-dev.yml new file mode 100644 index 0000000..60468da --- /dev/null +++ b/.github/workflows/build-dev.yml @@ -0,0 +1,31 @@ +name: Docker Build + +on: + push: + branches-ignore: + - main + - 'hotfix-*' + +permissions: + contents: read + +jobs: + build: + name: Build Docker Image + runs-on: Linux + + steps: + - name: Checkout code + uses: actions/checkout@v5 + with: + submodules: recursive + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build Docker image + uses: docker/build-push-action@v6 + with: + context: . + push: false + load: false diff --git a/.github/workflows/build-prod.yml b/.github/workflows/build-prod.yml new file mode 100644 index 0000000..52da329 --- /dev/null +++ b/.github/workflows/build-prod.yml @@ -0,0 +1,41 @@ +name: Docker Build + +on: + push: + branches: + - main + - 'hotfix-*' + +permissions: + contents: read + +jobs: + build: + name: Build Docker Image + runs-on: Linux + + steps: + - name: Checkout code + uses: actions/checkout@v5 + with: + submodules: recursive + + - name: Login to Docker registry + uses: docker/login-action@v3 + with: + registry: ${{ secrets.DOCKER_REGISTRY }} + username: ${{ secrets.DOCKER_REGISTRY_USERNAME }} + password: ${{ secrets.DOCKER_REGISTRY_PASSWORD }} + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build & Push Docker image + uses: docker/build-push-action@v6 + with: + context: . + push: true + tags: | + ${{ secrets.DOCKER_REGISTRY }}/${{ secrets.IMAGE_NAME }}:${{ github.sha }} + ${{ secrets.DOCKER_REGISTRY }}/${{ secrets.IMAGE_NAME }}:dev + cache-to: type=inline diff --git a/.github/workflows/deploy-dev.yml b/.github/workflows/deploy-dev.yml new file mode 100644 index 0000000..9714a8d --- /dev/null +++ b/.github/workflows/deploy-dev.yml @@ -0,0 +1,39 @@ +name: Deploy to dev + +on: + push: + branches: + - main + - 'hotfix-*' + tags: + - '*' + +permissions: + contents: read + +jobs: + deploy_to_dev: + name: Deploy to dev environment + runs-on: Linux + + steps: + - name: Determine image version + id: version + run: | + if [ "${GITHUB_REF_TYPE}" = "tag" ]; then + IMAGE_VERSION="${GITHUB_REF_NAME}" + else + IMAGE_VERSION="${GITHUB_SHA}" + fi + echo "IMAGE_VERSION=$IMAGE_VERSION" >> $GITHUB_ENV + echo "Image version: $IMAGE_VERSION" + + - name: Deploy via cURL + env: + DEV_TOKEN: ${{ secrets.DEV_TOKEN }} + DEPLOY_SERVER: ${{ secrets.DEPLOY_SERVER }} + run: | + echo "Triggering deployment for version: $IMAGE_VERSION" + curl --fail-with-body \ + -H "X-Token: $DEV_TOKEN" \ + "https://$DEPLOY_SERVER/api/deploy?image_version=$IMAGE_VERSION" \ No newline at end of file diff --git a/.github/workflows/tag.yml b/.github/workflows/tag.yml new file mode 100644 index 0000000..2f23fc5 --- /dev/null +++ b/.github/workflows/tag.yml @@ -0,0 +1,40 @@ +name: Tag Docker Image + +on: + push: + tags: + - '*' + +permissions: + contents: read + +jobs: + tag_docker_image: + name: Tag Docker Image + runs-on: Linux + + steps: + - name: Checkout repository + uses: actions/checkout@v5 + with: + submodules: recursive + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to Docker registry + uses: docker/login-action@v3 + with: + registry: ${{ secrets.DOCKER_REGISTRY }} + username: ${{ secrets.DOCKER_REGISTRY_USERNAME }} + password: ${{ secrets.DOCKER_REGISTRY_PASSWORD }} + + - name: Retag image via build cache + uses: docker/build-push-action@v6 + with: + context: . + push: true + cache-from: type=registry,ref=${{ secrets.DOCKER_REGISTRY }}/${{ secrets.IMAGE_NAME }}:${{ github.sha }} + tags: | + ${{ secrets.DOCKER_REGISTRY }}/${{ secrets.IMAGE_NAME }}:${{ github.ref_name }} + provenance: false From 69e2212a200276cca6822d182090049b90bf41b5 Mon Sep 17 00:00:00 2001 From: brtfx Date: Fri, 7 Nov 2025 15:46:48 +0100 Subject: [PATCH 3/4] change deploy condition --- .github/workflows/build-prod.yml | 2 +- .github/workflows/deploy-dev.yml | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-prod.yml b/.github/workflows/build-prod.yml index 52da329..fc57408 100644 --- a/.github/workflows/build-prod.yml +++ b/.github/workflows/build-prod.yml @@ -1,4 +1,4 @@ -name: Docker Build +name: Docker Build production image on: push: diff --git a/.github/workflows/deploy-dev.yml b/.github/workflows/deploy-dev.yml index 9714a8d..bf7e72c 100644 --- a/.github/workflows/deploy-dev.yml +++ b/.github/workflows/deploy-dev.yml @@ -1,12 +1,10 @@ name: Deploy to dev on: - push: - branches: - - main - - 'hotfix-*' - tags: - - '*' + workflow_run: + workflows: ["Docker Build production image", "Tag Docker Image"] + types: + - completed permissions: contents: read From 0f60abd3631f43eb39a3064cd3dd86940fcc137f Mon Sep 17 00:00:00 2001 From: ldudzsim Date: Fri, 7 Nov 2025 18:23:51 +0100 Subject: [PATCH 4/4] Restore .gitlab-ci.yml --- .gitlab-ci.yml | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..c1c424e --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,70 @@ +stages: + - build + - deploy + +variables: + DOCKER_TLS_CERTDIR: "" + +build: + stage: build + image: docker:27.3.1 + services: + - name: docker:27.3.1-dind + command: ["--tls=false"] + script: + - docker build . + except: + - tags + - main + - /^hotfix-.*$/ + +build_and_publish_docker_image: + stage: build + image: docker:27.3.1 + services: + - name: docker:27.3.1-dind + command: ["--tls=false"] + script: + - export IMAGE_ID=$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA + - export DEV_IMAGE_ID=$CI_REGISTRY_IMAGE:dev + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker build -t $IMAGE_ID -t $DEV_IMAGE_ID . + - docker push $IMAGE_ID + - docker push $DEV_IMAGE_ID + except: + - tags + only: + - main + - /^hotfix-.*$/ + +tag_docker_image: + stage: build + image: docker:27.3.1 + services: + - name: docker:27.3.1-dind + command: ["--tls=false"] + script: + - export IMAGE_ID=$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA + - export IMAGE_TAG_ID=$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker pull $IMAGE_ID + - docker tag $IMAGE_ID $IMAGE_TAG_ID + - docker push $IMAGE_TAG_ID + except: + - branches + only: + - tags + +deploy_to_dev: + stage: deploy + image: curlimages/curl:latest + script: + - export IMAGE_VERSION=${CI_COMMIT_TAG:-$CI_COMMIT_SHORT_SHA} + - 'curl --fail-with-body -H "X-Token: $DEV_TOKEN" https://apps.test.simplito.com/api/deploy?image_version=$IMAGE_VERSION' + only: + - main + - /^hotfix-.*$/ + - tags + environment: + name: dev + url: https://dfinfra.test.simplito.com/