Files
reusing_workflows/.github/workflows/deploy_compose.yml
2024-03-25 20:51:35 +08:00

104 lines
3.9 KiB
YAML

on:
workflow_call:
inputs:
runs_on:
required: false
type: string
default: 'ubuntu_act_on_20'
compose_repository:
required: false
type: string
default: 'olms/deploy'
compose_ref:
required: false
type: string
default: 'refs/heads/main'
stack_file_name:
required: false
type: string
default: ''
env_file_name:
required: false
type: string
default: ''
args:
required: false
type: string
default: 'up -d'
docker_prune:
required: false
type: string
default: 'false'
pull_images_first:
required: false
type: string
default: 'false'
jobs:
deploy_compose:
runs-on: ${{ inputs.runs_on }}
# container:
# image: catthehacker/ubuntu:act-latest
env:
RUNNER_TOOL_CACHE: /toolcache
steps:
- name: check info
run: |
echo "github.event_name: ${{ github.event_name }}"
- name: Check out Deploy Compose Repo
uses: actions/checkout@v3
with:
repository: ${{ inputs.compose_repository }}
ref: ${{ inputs.compose_ref }}
token: ${{ secrets.REPOS_ACCESS_TOKEN }}
- name: Change Version if pr
if: ${{ github.event_name == 'pull_request' }}
run: |
echo "Change Version"
echo "github.repository: ${{ github.repository }}"
echo "github.repository_owner: ${{ github.repository_owner }}"
echo "github.event.number: ${{ github.event.number }}"
MODULE=$(echo $repository | sed "s/\//_/" | sed 's/^/VERSION_/' | tr a-z A-Z) && touch .env.version && sed -i "s/^$MODULE=.*/$MODULE=pr-${{ github.event.number }}-head/" .env.version
echo "Target version: $MODULE=pr-${{ github.event.number }}-head"
echo "cat .env.version:"
cat .env.version
- name: Deploy to Dev Host on pr
uses: https://code.platosoft.org/infrastructure/docker-remote-deployment-action@local
if: ${{ github.event_name == 'pull_request' }}
with:
remote_docker_host: ${{ secrets.DEV_DEPLOY_HOST }}
remote_docker_port: ${{ secrets.DEV_DEPLOY_PORT }}
remote_docker_user: ${{ secrets.DEV_DEPLOY_USER }}
ssh_private_key: ${{ secrets.DEV_SSH_PRIVATE_KEY }}
ssh_proxy_cmd: ${{ secrets.DEV_SSH_PROXY_CMD }}
deploy_path: ${{ secrets.DEV_WORKING_DIRECTORY }}
stack_file_name: ${{ inputs.stack_file_name }}
env_file_name: ${{ inputs.env_file_name }}
args: ${{ inputs.args }}
docker_prune: ${{ inputs.docker_prune }}
pull_images_first: ${{ inputs.pull_images_first }}
docker_registry_uri: ${{ secrets.REGISTRY_HOST }}
docker_registry_username: ${{ secrets.REGISTRY_USERNAME }}
docker_registry_password: ${{ secrets.REGISTRY_PASSWORD }}
- name: Deploy to Deploy Host on other event
uses: https://code.platosoft.org/infrastructure/docker-remote-deployment-action@local
if: ${{ ! ( github.event_name == 'pull_request' ) }}
with:
remote_docker_host: ${{ secrets.DEPLOY_HOST }}
remote_docker_port: ${{ secrets.DEPLOY_PORT }}
remote_docker_user: ${{ secrets.DEPLOY_USER }}
ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}
ssh_proxy_cmd: ${{ secrets.SSH_PROXY_CMD }}
deploy_path: ${{ secrets.WORKING_DIRECTORY }}
stack_file_name: ${{ inputs.stack_file_name }}
env_file_name: ${{ inputs.env_file_name }}
args: ${{ inputs.args }}
docker_prune: ${{ inputs.docker_prune }}
pull_images_first: ${{ inputs.pull_images_first }}
docker_registry_uri: ${{ secrets.REGISTRY_HOST }}
docker_registry_username: ${{ secrets.REGISTRY_USERNAME }}
docker_registry_password: ${{ secrets.REGISTRY_PASSWORD }}