Merge pull request 'DONE: update cicd to auto deploy on staging, clean up garbage files' (#29) from cicd/auto-deploy-staging into main
Reviewed-on: #29
This commit was merged in pull request #29.
This commit is contained in:
+2
-5
@@ -4,17 +4,14 @@ APP_VERSION=v2.2-staging
|
|||||||
APP_KEY=base64:O1XZDqK4H6+3GdrODgCaLr2l+OoWvgVhYr0GJ1KizW8=
|
APP_KEY=base64:O1XZDqK4H6+3GdrODgCaLr2l+OoWvgVhYr0GJ1KizW8=
|
||||||
APP_DEBUG=true
|
APP_DEBUG=true
|
||||||
APP_URL=https://staging.erahn.com.my
|
APP_URL=https://staging.erahn.com.my
|
||||||
|
API_URL=https://api-staging.erahn.com.my
|
||||||
|
|
||||||
HTTP_PORT=8091
|
HTTP_PORT=8091
|
||||||
MYSQL_PUBLISH_PORT=3309
|
MYSQL_PUBLISH_PORT=3309
|
||||||
|
|
||||||
API_URL=https://api-staging.erahn.com.my
|
|
||||||
API_URL_KOOP=https://api-staging.erahn.com.my
|
|
||||||
API_URL_PKB=https://api-staging.erahn.com.my
|
|
||||||
API_ARRAHNBID=http://lelong.test/api/
|
|
||||||
|
|
||||||
LOG_CHANNEL=stack
|
LOG_CHANNEL=stack
|
||||||
LOG_LEVEL=debug
|
LOG_LEVEL=debug
|
||||||
|
LOGVIEWER_PASSWORD=test123
|
||||||
|
|
||||||
DB_CONNECTION=mysql
|
DB_CONNECTION=mysql
|
||||||
DB_HOST=mysql
|
DB_HOST=mysql
|
||||||
|
|||||||
@@ -1,50 +0,0 @@
|
|||||||
APP_NAME=Laravel
|
|
||||||
APP_ENV=local
|
|
||||||
APP_KEY=base64:WRTHcFTq5YARKVdA8YDUzsh9Ue8vD63ivgZgXNNBiGo=
|
|
||||||
APP_DEBUG=true
|
|
||||||
APP_URL=http://ujrahkopkb.erahn.com.my
|
|
||||||
API_URL=http://apiujrah-kopkb.erahn.com.my
|
|
||||||
#API_ARRAHNBID=http://lelong.test/api/
|
|
||||||
|
|
||||||
LOG_CHANNEL=stack
|
|
||||||
|
|
||||||
DB_CONNECTION=mysql
|
|
||||||
DB_HOST=127.0.0.1
|
|
||||||
DB_PORT=3306
|
|
||||||
DB_DATABASE=kaunter_erahn
|
|
||||||
DB_USERNAME=spider
|
|
||||||
DB_PASSWORD=G0dz!ll4
|
|
||||||
|
|
||||||
BROADCAST_DRIVER=pusher
|
|
||||||
CACHE_DRIVER=file
|
|
||||||
QUEUE_CONNECTION=sync
|
|
||||||
SESSION_DRIVER=file
|
|
||||||
SESSION_LIFETIME=120
|
|
||||||
|
|
||||||
REDIS_HOST=127.0.0.1
|
|
||||||
REDIS_PASSWORD=null
|
|
||||||
REDIS_PORT=6379
|
|
||||||
|
|
||||||
PUSHER_APP_ID=1132718
|
|
||||||
PUSHER_APP_KEY=26b0ec2f297f94b7aa9b
|
|
||||||
PUSHER_APP_SECRET=421b61fb5a8ecce477a6
|
|
||||||
|
|
||||||
MAIL_MAILER=smtp
|
|
||||||
MAIL_HOST=smtp.mailtrap.io
|
|
||||||
MAIL_PORT=2525
|
|
||||||
MAIL_USERNAME=null
|
|
||||||
MAIL_PASSWORD=null
|
|
||||||
MAIL_ENCRYPTION=null
|
|
||||||
MAIL_FROM_ADDRESS=null
|
|
||||||
MAIL_FROM_NAME="${APP_NAME}"
|
|
||||||
|
|
||||||
AWS_ACCESS_KEY_ID=
|
|
||||||
AWS_SECRET_ACCESS_KEY=
|
|
||||||
AWS_DEFAULT_REGION=us-east-1
|
|
||||||
AWS_BUCKET=
|
|
||||||
|
|
||||||
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
|
|
||||||
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
|
|
||||||
|
|
||||||
MYKAD_READER_PORT=8085
|
|
||||||
MYKAD_READER_ENABLED_CAWANGAN='' # IF NO CAWANGAN STATED, ALL CAWANGAN IS ENABLED
|
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
name: Deploy to Staging
|
name: Deploy to Staging
|
||||||
|
|
||||||
on:
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- "v*"
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
image_tag:
|
image_tag:
|
||||||
@@ -18,10 +21,22 @@ jobs:
|
|||||||
runs-on: host
|
runs-on: host
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
- name: Resolve image tag
|
||||||
|
id: resolve
|
||||||
|
run: |
|
||||||
|
set -e
|
||||||
|
if [ "${{ gitea.event_name }}" = "workflow_dispatch" ]; then
|
||||||
|
IMAGE_TAG="${{ inputs.image_tag }}"
|
||||||
|
else
|
||||||
|
IMAGE_TAG="${{ gitea.ref_name }}"
|
||||||
|
fi
|
||||||
|
echo "IMAGE_TAG=${IMAGE_TAG}" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "Deploying image tag: ${IMAGE_TAG}"
|
||||||
|
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
ref: ${{ inputs.image_tag }}
|
ref: ${{ steps.resolve.outputs.IMAGE_TAG }}
|
||||||
|
|
||||||
- name: Login to Docker registry
|
- name: Login to Docker registry
|
||||||
run: |
|
run: |
|
||||||
@@ -33,28 +48,35 @@ jobs:
|
|||||||
- name: Verify image exists in registry
|
- name: Verify image exists in registry
|
||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
IMAGE_TAG="${{ inputs.image_tag }}"
|
IMAGE_TAG="${{ steps.resolve.outputs.IMAGE_TAG }}"
|
||||||
IMAGE="${APP_IMAGE}:${IMAGE_TAG}"
|
IMAGE="${APP_IMAGE}:${IMAGE_TAG}"
|
||||||
|
|
||||||
echo "Checking if image exists: ${IMAGE}"
|
echo "Checking if image exists: ${IMAGE}"
|
||||||
if ! docker manifest inspect "${IMAGE}" > /dev/null 2>&1; then
|
# Tag pushes build in parallel — wait for the image to appear
|
||||||
echo "ERROR: Image ${IMAGE} does not exist in registry!"
|
for i in $(seq 1 30); do
|
||||||
|
if docker manifest inspect "${IMAGE}" > /dev/null 2>&1; then
|
||||||
|
echo "✓ ${IMAGE} found"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
echo "Image not ready yet (attempt ${i}/30), waiting 20s..."
|
||||||
|
sleep 20
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "ERROR: Image ${IMAGE} does not exist in registry after waiting!"
|
||||||
echo "Run the Build Docker Image workflow first."
|
echo "Run the Build Docker Image workflow first."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
|
||||||
echo "✓ ${IMAGE} found"
|
|
||||||
|
|
||||||
- name: Pull Docker image
|
- name: Pull Docker image
|
||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
IMAGE_TAG="${{ inputs.image_tag }}"
|
IMAGE_TAG="${{ steps.resolve.outputs.IMAGE_TAG }}"
|
||||||
docker pull "${APP_IMAGE}:${IMAGE_TAG}"
|
docker pull "${APP_IMAGE}:${IMAGE_TAG}"
|
||||||
echo "✓ Image pulled successfully"
|
echo "✓ Image pulled successfully"
|
||||||
|
|
||||||
- name: Sync compose file and deploy
|
- name: Sync compose file and deploy
|
||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
IMAGE_TAG="${{ inputs.image_tag }}"
|
IMAGE_TAG="${{ steps.resolve.outputs.IMAGE_TAG }}"
|
||||||
|
|
||||||
mkdir -p "${DEPLOY_DIR}/docker/nginx" "${DEPLOY_DIR}/public"
|
mkdir -p "${DEPLOY_DIR}/docker/nginx" "${DEPLOY_DIR}/public"
|
||||||
cp docker-compose.staging.yml "${DEPLOY_DIR}/docker-compose.yml"
|
cp docker-compose.staging.yml "${DEPLOY_DIR}/docker-compose.yml"
|
||||||
@@ -62,15 +84,12 @@ jobs:
|
|||||||
find "${DEPLOY_DIR}/public" -mindepth 1 -delete
|
find "${DEPLOY_DIR}/public" -mindepth 1 -delete
|
||||||
cp -R public/. "${DEPLOY_DIR}/public/"
|
cp -R public/. "${DEPLOY_DIR}/public/"
|
||||||
|
|
||||||
if [ ! -f "${DEPLOY_DIR}/.env.staging" ]; then
|
if [ ! -f .env.staging ]; then
|
||||||
if [ -f .env.staging ]; then
|
echo "ERROR: .env.staging is missing in the repository"
|
||||||
cp .env.staging "${DEPLOY_DIR}/.env.staging"
|
|
||||||
echo "Copied .env.staging from repo (first deploy). Edit ${DEPLOY_DIR}/.env.staging on the server if needed."
|
|
||||||
else
|
|
||||||
echo "ERROR: ${DEPLOY_DIR}/.env.staging is missing on the server"
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
cp .env.staging "${DEPLOY_DIR}/.env.staging"
|
||||||
|
echo "✓ Synced .env.staging from repo"
|
||||||
|
|
||||||
cd "${DEPLOY_DIR}"
|
cd "${DEPLOY_DIR}"
|
||||||
|
|
||||||
|
|||||||
@@ -1,50 +0,0 @@
|
|||||||
APP_NAME=Laravel
|
|
||||||
APP_ENV=local
|
|
||||||
APP_KEY=base64:FFRogE6mJj8FaDSSHl/KpXpzqi2M+P4plxVSRgVM8JI=
|
|
||||||
APP_DEBUG=true
|
|
||||||
APP_URL=http://kaunterv2.localhost
|
|
||||||
API_URL=http://apiv2.localhost
|
|
||||||
API_ARRAHNBID=http://lelong.localhost/api/
|
|
||||||
|
|
||||||
LOG_CHANNEL=stack
|
|
||||||
|
|
||||||
DB_CONNECTION=mysql
|
|
||||||
DB_HOST=database_zone2
|
|
||||||
DB_PORT=3306
|
|
||||||
DB_DATABASE=kaunterpkb
|
|
||||||
DB_USERNAME=root
|
|
||||||
DB_PASSWORD=secret
|
|
||||||
|
|
||||||
BROADCAST_DRIVER=pusher
|
|
||||||
CACHE_DRIVER=file
|
|
||||||
QUEUE_CONNECTION=sync
|
|
||||||
SESSION_DRIVER=file
|
|
||||||
SESSION_LIFETIME=120
|
|
||||||
|
|
||||||
REDIS_HOST=127.0.0.1
|
|
||||||
REDIS_PASSWORD=null
|
|
||||||
REDIS_PORT=6379
|
|
||||||
|
|
||||||
PUSHER_APP_ID=1132718
|
|
||||||
PUSHER_APP_KEY=26b0ec2f297f94b7aa9b
|
|
||||||
PUSHER_APP_SECRET=421b61fb5a8ecce477a6
|
|
||||||
|
|
||||||
MAIL_MAILER=smtp
|
|
||||||
MAIL_HOST=smtp.mailtrap.io
|
|
||||||
MAIL_PORT=2525
|
|
||||||
MAIL_USERNAME=null
|
|
||||||
MAIL_PASSWORD=null
|
|
||||||
MAIL_ENCRYPTION=null
|
|
||||||
MAIL_FROM_ADDRESS=null
|
|
||||||
MAIL_FROM_NAME="${APP_NAME}"
|
|
||||||
|
|
||||||
AWS_ACCESS_KEY_ID=
|
|
||||||
AWS_SECRET_ACCESS_KEY=
|
|
||||||
AWS_DEFAULT_REGION=us-east-1
|
|
||||||
AWS_BUCKET=
|
|
||||||
|
|
||||||
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
|
|
||||||
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
|
|
||||||
|
|
||||||
MYKAD_READER_PORT=8085
|
|
||||||
MYKAD_READER_ENABLED_CAWANGAN='' # IF NO CAWANGAN STATED, ALL CAWANGAN IS ENABLED
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
APP_NAME=Laravel
|
|
||||||
APP_ENV=local
|
|
||||||
APP_KEY=base64:FFRogE6mJj8FaDSSHl/KpXpzqi2M+P4plxVSRgVM8JI=
|
|
||||||
APP_DEBUG=true
|
|
||||||
APP_URL=http://kaunterv2.localhost
|
|
||||||
API_URL=http://apiv2.kgmk.localhost
|
|
||||||
API_ARRAHNBID=http://lelong.localhost/api/
|
|
||||||
|
|
||||||
LOG_CHANNEL=stack
|
|
||||||
|
|
||||||
DB_CONNECTION=mysql
|
|
||||||
DB_HOST=database_zone_franchise
|
|
||||||
DB_PORT=3306
|
|
||||||
DB_DATABASE=kaunter_koopguru
|
|
||||||
DB_USERNAME=root
|
|
||||||
DB_PASSWORD=secret
|
|
||||||
|
|
||||||
BROADCAST_DRIVER=pusher
|
|
||||||
CACHE_DRIVER=file
|
|
||||||
QUEUE_CONNECTION=sync
|
|
||||||
SESSION_DRIVER=file
|
|
||||||
SESSION_LIFETIME=120
|
|
||||||
|
|
||||||
REDIS_HOST=127.0.0.1
|
|
||||||
REDIS_PASSWORD=null
|
|
||||||
REDIS_PORT=6379
|
|
||||||
|
|
||||||
PUSHER_APP_ID=1132718
|
|
||||||
PUSHER_APP_KEY=26b0ec2f297f94b7aa9b
|
|
||||||
PUSHER_APP_SECRET=421b61fb5a8ecce477a6
|
|
||||||
|
|
||||||
MAIL_MAILER=smtp
|
|
||||||
MAIL_HOST=smtp.mailtrap.io
|
|
||||||
MAIL_PORT=2525
|
|
||||||
MAIL_USERNAME=null
|
|
||||||
MAIL_PASSWORD=null
|
|
||||||
MAIL_ENCRYPTION=null
|
|
||||||
MAIL_FROM_ADDRESS=null
|
|
||||||
MAIL_FROM_NAME="${APP_NAME}"
|
|
||||||
|
|
||||||
AWS_ACCESS_KEY_ID=
|
|
||||||
AWS_SECRET_ACCESS_KEY=
|
|
||||||
AWS_DEFAULT_REGION=us-east-1
|
|
||||||
AWS_BUCKET=
|
|
||||||
|
|
||||||
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
|
|
||||||
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
|
|
||||||
|
|
||||||
MYKAD_READER_PORT=8085
|
|
||||||
MYKAD_READER_ENABLED_CAWANGAN='' # IF NO CAWANGAN STATED, ALL CAWANGAN IS ENABLED
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
APP_NAME=Laravel
|
|
||||||
APP_ENV=local
|
|
||||||
APP_KEY=base64:FFRogE6mJj8FaDSSHl/KpXpzqi2M+P4plxVSRgVM8JI=
|
|
||||||
APP_DEBUG=true
|
|
||||||
APP_URL=http://kaunterv2.localhost
|
|
||||||
API_URL=http://apiv2.krk.localhost
|
|
||||||
API_ARRAHNBID=http://lelong.localhost/api/
|
|
||||||
|
|
||||||
LOG_CHANNEL=stack
|
|
||||||
|
|
||||||
DB_CONNECTION=mysql
|
|
||||||
DB_HOST=database_zone_franchise
|
|
||||||
DB_PORT=3306
|
|
||||||
DB_DATABASE=kaunter_krk
|
|
||||||
DB_USERNAME=root
|
|
||||||
DB_PASSWORD=secret
|
|
||||||
|
|
||||||
BROADCAST_DRIVER=pusher
|
|
||||||
CACHE_DRIVER=file
|
|
||||||
QUEUE_CONNECTION=sync
|
|
||||||
SESSION_DRIVER=file
|
|
||||||
SESSION_LIFETIME=120
|
|
||||||
|
|
||||||
REDIS_HOST=127.0.0.1
|
|
||||||
REDIS_PASSWORD=null
|
|
||||||
REDIS_PORT=6379
|
|
||||||
|
|
||||||
PUSHER_APP_ID=1132718
|
|
||||||
PUSHER_APP_KEY=26b0ec2f297f94b7aa9b
|
|
||||||
PUSHER_APP_SECRET=421b61fb5a8ecce477a6
|
|
||||||
|
|
||||||
MAIL_MAILER=smtp
|
|
||||||
MAIL_HOST=smtp.mailtrap.io
|
|
||||||
MAIL_PORT=2525
|
|
||||||
MAIL_USERNAME=null
|
|
||||||
MAIL_PASSWORD=null
|
|
||||||
MAIL_ENCRYPTION=null
|
|
||||||
MAIL_FROM_ADDRESS=null
|
|
||||||
MAIL_FROM_NAME="${APP_NAME}"
|
|
||||||
|
|
||||||
AWS_ACCESS_KEY_ID=
|
|
||||||
AWS_SECRET_ACCESS_KEY=
|
|
||||||
AWS_DEFAULT_REGION=us-east-1
|
|
||||||
AWS_BUCKET=
|
|
||||||
|
|
||||||
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
|
|
||||||
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
|
|
||||||
|
|
||||||
MYKAD_READER_PORT=8085
|
|
||||||
MYKAD_READER_ENABLED_CAWANGAN='' # IF NO CAWANGAN STATED, ALL CAWANGAN IS ENABLED
|
|
||||||
Reference in New Issue
Block a user