deploy compose

This commit is contained in:
smf
2024-03-10 16:05:47 +08:00
parent ba03742d81
commit ae3bb6aae2
2 changed files with 77 additions and 2 deletions

77
.github/workflows/deploy_compose.yml vendored Normal file
View File

@@ -0,0 +1,77 @@
on:
workflow_call:
inputs:
runs_on:
required: false
type: string
default: 'ubuntu_act_on_20'
compose_repository:
required: false
type: string
default: ${{ github.repository }}
checkout_token:
required: false
type: string
default: ${{ github.token }}
ssh_proxy_cmd:
required: false
type: string
default: ''
stack_file_name:
required: false
type: string
default: 'compose.yml'
env_file_name:
required: false
type: string
default: '.env.base,.env.version'
args:
required: false
type: string
default: 'up -d'
jobs:
deploy_compose:
runs-on: ${{ inputs.runs_on }}
# container:
# image: catthehacker/ubuntu:act-latest
env:
RUNNER_TOOL_CACHE: /toolcache
steps:
- uses: actions/checkout@v3
with:
repository: ${{ inputs.compose_repository }}
token: ${{ inputs.checkout_token }}
- name: Switch Host if pr
id: meta
run: |
echo "Set Host"
echo "github.event_name: ${{ github.event_name}}"
echo DEPLOY_HOST=$([ "${{ github.event_name}}" == "pull_request" ] && echo -n "${{ vars.DEV_DEPLOY_HOST }}" || echo -n "${{ vars.DEPLOY_HOST }}") >> $GITHUB_OUTPUT
echo DEPLOY_USER=$([ "${{ github.event_name}}" == "pull_request" ] && echo -n "${{ vars.DEV_DEPLOY_USER }}" || echo -n "${{ vars.DEPLOY_USER }}") >> $GITHUB_OUTPUT
echo SSH_PRIVATE_KEY=$([ "${{ github.event_name}}" == "pull_request" ] && echo -n "${{ secrets.DEV_SSH_PRIVATE_KEY }}" || echo -n "${{ secrets.SSH_PRIVATE_KEY }}") >> $GITHUB_OUTPUT
echo WORKING_DIRECTORY=$([ "${{ github.event_name}}" == "pull_request" ] && echo -n "${{ vars.DEV_WORKING_DIRECTORY }}" || echo -n "${{ vars.WORKING_DIRECTORY }}") >> $GITHUB_OUTPUT
- name: Change Version if pr
if: ${{ github.event.pull_request }}
run: |
echo "Change Version"
echo ${{ github.repository }} |
echo ${${{ github.repository }}//${{ github.repository_owner }}\//} | sed
MODULE=$(echo ${{ github.repository }} | sed "s/${{ github.repository_owner }}\///" | sed 's/-/_/g' | tr a-z A-Z | sed 's/OLMS/VERSION/') && sed -i "s/^$MODULE=.*/$MODULE=pr-${{ github.event.number }}-head/" .env.version
- name: Deploy to Remote Host
uses: https://code.platosoft.org/infrastructure/docker-remote-deployment-action@local
with:
remote_docker_host: ${{ steps.meta.outputs.DEPLOY_HOST }}
remote_docker_user: ${{ steps.meta.outputs.DEPLOY_USER }}
ssh_private_key: ${{ steps.meta.outputs.SSH_PRIVATE_KEY }}
deploy_path: ${{ steps.meta.outputs.WORKING_DIRECTORY }}
ssh_proxy_cmd: ${{ inputs.ssh_proxy_cmd }}
stack_file_name: ${{ inputs.stack_file_name }}
env_file_name: ${{ inputs.env_file_name }}
args: ${{ inputs.args }}
docker_registry_uri: ${{ secrets.REGISTRY_HOST }}
docker_registry_username: ${{ secrets.REGISTRY_USERNAME }}
docker_registry_password: ${{ secrets.REGISTRY_PASSWORD }}