From ae3bb6aae2c3f8d3087cd2d30672dcb4ad208cb9 Mon Sep 17 00:00:00 2001 From: smf Date: Sun, 10 Mar 2024 16:05:47 +0800 Subject: [PATCH] deploy compose --- .github/workflows/deploy_compose.yml | 77 ++++++++++++++++++++++++++++ .github/workflows/publish_docker.yml | 2 - 2 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/deploy_compose.yml diff --git a/.github/workflows/deploy_compose.yml b/.github/workflows/deploy_compose.yml new file mode 100644 index 0000000..c5531ef --- /dev/null +++ b/.github/workflows/deploy_compose.yml @@ -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 }} \ No newline at end of file diff --git a/.github/workflows/publish_docker.yml b/.github/workflows/publish_docker.yml index 84c8d2b..8dedf01 100644 --- a/.github/workflows/publish_docker.yml +++ b/.github/workflows/publish_docker.yml @@ -1,5 +1,3 @@ -name: publish - on: workflow_call: inputs: