22
All checks were successful
Deploy Production / Deploy to Staging (push) Has been skipped

This commit is contained in:
Alex Shevchuk
2025-08-19 00:46:43 +03:00
parent af2720ca30
commit ab529b9605

View File

@@ -55,20 +55,10 @@ jobs:
env: env:
STACK_NAME: molvaapp-${{ inputs.environment }} STACK_NAME: molvaapp-${{ inputs.environment }}
strategy:
matrix:
project:
- test_deploy
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Show selected version
run: |
echo "Deploying version: ${{ inputs.version }}"
echo "Available versions were: ${{ needs.get_available_versions.outputs.version_options }}"
- name: Extract Git metadata - name: Extract Git metadata
id: git-metadata id: git-metadata
run: | run: |
@@ -80,22 +70,33 @@ jobs:
run: | run: |
echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin
- name: Push Docker Image - name: Build and Push Docker Image
if: ${{ inputs.version == 'latest' }}
env:
IMAGE_NAME: molvaapp/test_deploy
IMAGE_TAG: ${{ steps.git-metadata.outputs.GIT_TAG != "none" && steps.git-metadata.outputs.GIT_TAG || steps.git-metadata.outputs.GIT_SHA }}
run: | run: |
if [ "${{ inputs.version }}" == "latest" ]; then docker build -t $IMAGE_NAME:$IMAGE_TAG .
TAG=${{ steps.git-metadata.outputs.GIT_TAG != "none" && steps.git-metadata.outputs.GIT_TAG || steps.git-metadata.outputs.GIT_SHA }}
IMAGE_NAME="molvaapp/${{ matrix.project }}"
docker build -t $IMAGE_NAME:$TAG . docker tag $IMAGE_NAME:$IMAGE_TAG $IMAGE_NAME:latest
docker push $IMAGE_NAME:$TAG
echo "Pushed image $IMAGE_NAME:$TAG"
else
echo "Using non-latest version ${{ inputs.version }}"
echo "Skipping pushing image..."
fi
- name: Install envsubst docker push $IMAGE_NAME:$IMAGE_TAG
run: sudo apt-get update && sudo apt-get install -y gettext docker push $IMAGE_NAME:latest
echo "Pushed image $IMAGE_NAME:$IMAGE_TAG and :latest"
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y gettext jq
- name: Prepare environment
run: |
mkdir -p /tmp/swarm-certs
echo "${{ secrets.SWARM_CA_PEM }}" > /tmp/swarm-certs/ca.pem
echo "${{ secrets.SWARM_CERT_PEM }}" > /tmp/swarm-certs/cert.pem
echo "${{ secrets.SWARM_KEY_PEM }}" > /tmp/swarm-certs/key.pem
chmod 600 /tmp/swarm-certs/*.pem
- name: Deploy to Swarm - name: Deploy to Swarm
env: env:
@@ -103,6 +104,8 @@ jobs:
DOCKER_TLS_VERIFY: 1 DOCKER_TLS_VERIFY: 1
DOCKER_CERT_PATH: /tmp/swarm-certs DOCKER_CERT_PATH: /tmp/swarm-certs
VERSION: ${{ inputs.version }}
KEYCLOAK_BASE_URL: ${{ secrets.KEYCLOAK_BASE_URL }} KEYCLOAK_BASE_URL: ${{ secrets.KEYCLOAK_BASE_URL }}
KEYCLOAK_REALM: ${{ secrets.KEYCLOAK_REALM }} KEYCLOAK_REALM: ${{ secrets.KEYCLOAK_REALM }}
KEYCLOAK_CLIENT_ID: ${{ secrets.KEYCLOAK_CLIENT_ID }} KEYCLOAK_CLIENT_ID: ${{ secrets.KEYCLOAK_CLIENT_ID }}
@@ -128,26 +131,22 @@ jobs:
run: | run: |
envsubst < docker-compose.staging.yaml > docker-compose.runtime.yaml envsubst < docker-compose.staging.yaml > docker-compose.runtime.yaml
if [ "${{ inputs.version }}" == "latest" ]; then echo "=== Processed Compose File ==="
VERSION="latest" grep -E 'KEYCLOAK|BROKER|DB_' docker-compose.runtime.yaml
else
VERSION="${{ inputs.version }}"
fi
echo "Deploying version $VERSION to ${{ inputs.environment }}..." echo "Deploying version $VERSION to ${{ inputs.environment }}..."
echo "Log level: ${{ inputs.logLevel }}" echo "Log level: ${{ inputs.logLevel }}"
mkdir -p /tmp/swarm-certs
echo "${{ secrets.SWARM_CA_PEM }}" > /tmp/swarm-certs/ca.pem
echo "${{ secrets.SWARM_CERT_PEM }}" > /tmp/swarm-certs/cert.pem
echo "${{ secrets.SWARM_KEY_PEM }}" > /tmp/swarm-certs/key.pem
chmod 600 /tmp/swarm-certs/*.pem
docker stack deploy \ docker stack deploy \
--with-registry-auth \ --with-registry-auth \
-c docker-compose.runtime.yaml \ -c docker-compose.runtime.yaml \
${{ env.STACK_NAME }} ${{ env.STACK_NAME }}
- name: Cleanup
run: |
rm -rf /tmp/swarm-certs
rm -f docker-compose.runtime.yaml
- name: Post-deploy - name: Post-deploy
run: | run: |
echo "Deployment to ${{ inputs.environment }} completed." echo "Deployment to ${{ inputs.environment }} completed."