PromucFlow_constructor/.github/workflows/ci-debugging.yml
Saroj 4ad92d648a
ci: CI optimisation to reduce ci-test run time and modularise docker image building (#21219)
## Description
- Modularised the docker image building
- Optimised the `install dependancies` step to reduce the time from 8
mins to 30-40 secs now
- Removed unnecessary steps from the ci-dubugging.yml 
- Added ci-debug.sh file to ease the steps to run ngrok while running
ci-debugging
- Changes made to below files
1.  integration-tests-command.yml
2. test-build-docker-image.yml
3. ci-test.yml
4. build-docker-image.yml

## Type of change
- integration-tests-command.yml
- test-build-docker-image.yml
- ci-test.yml
- build-docker-image.yml

## How Has This Been Tested?
- Manual

## Checklist:
### QA activity:
- [ ] Test plan has been approved by relevant developers
- [ ] Test plan has been peer reviewed by QA
- [ ] Cypress test cases have been added and approved by either SDET or
manual QA
- [ ] Organized project review call with relevant stakeholders after
Round 1/2 of QA
- [ ] Added Test Plan Approved label after reveiwing all Cypress test
2023-03-10 12:51:32 +05:30

96 lines
3.0 KiB
YAML

name: CI Debugging
on:
# This line enables manual triggering of this workflow.
workflow_dispatch:
inputs:
run_id:
description: 'Run id to download artifacts:'
required: true
type: number
jobs:
ci-debugger:
runs-on: ubuntu-latest
if: github.event_name == 'workflow_dispatch'
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
job: [ 0 ]
# Service containers to run with this job. Required for running tests
services:
# Label used to access the service container
redis:
# Docker Hub image for Redis
image: redis
ports:
# Opens tcp port 6379 on the host and service container
- 6379:6379
mongo:
image: mongo
ports:
- 27017:27017
steps:
- name: Set up Depot CLI
uses: depot/setup-action@v1
- name: Checkout the head commit of the branch
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Download Docker image artifact
uses: dawidd6/action-download-artifact@v2
with:
name: cicontainer
run_id: ${{ github.event.inputs.run_id }}
- name: Load Docker image from tar file
run: |
gunzip cicontainer.tar.gz
docker load -i cicontainer.tar
- name: Create folder
if: steps.run_result.outputs.run_result != 'success'
env:
APPSMITH_LICENSE_KEY: ${{ secrets.APPSMITH_LICENSE_KEY }}
working-directory: "."
run: |
mkdir -p cicontainerlocal/stacks/configuration/
- name: Run docker image
if: steps.run_result.outputs.run_result != 'success'
env:
APPSMITH_LICENSE_KEY: ${{ secrets.APPSMITH_LICENSE_KEY }}
working-directory: "."
run: |
sudo /etc/init.d/ssh stop ;
mkdir -p ~/git-server/keys
mkdir -p ~/git-server/repos
docker run --name test-event-driver -d -p 22:22 -p 5001:5001 -p 3306:3306 \
-p 5432:5432 -p 28017:27017 -p 25:25 -p 5000:5000 -p 3001:3000 --privileged --pid=host --ipc=host --volume /:/host -v ~/git-server/keys:/git-server/keys \
-v ~/git-server/repos:/git-server/repos appsmith/test-event-driver:latest
cd cicontainerlocal
docker run -d --name appsmith -p 80:80 -p 9001:9001 \
-v "$PWD/stacks:/appsmith-stacks" -e APPSMITH_LICENSE_KEY=$APPSMITH_LICENSE_KEY \
-e APPSMITH_DISABLE_TELEMETRY=true \
-e APPSMITH_CLOUD_SERVICES_BASE_URL=http://host.docker.internal:5001 \
--add-host=host.docker.internal:host-gateway \
cicontainer
- name: Execute access to ci-debug.sh
if: steps.run_result.outputs.run_result != 'success'
working-directory: "."
run: |
chmod +x ci-debug.sh
# Start tmate session for tunnelling
- name: Setup tmate session
if: steps.run_result.outputs.run_result != 'success'
uses: mxschmitt/action-tmate@v3