new workflows

This commit is contained in:
okx-code
2024-11-15 18:27:10 +00:00
parent 79fd088ab8
commit 131c0a3d9d
9 changed files with 194 additions and 21 deletions

View File

@@ -0,0 +1,50 @@
name: 🏗️ Ansible | Update Paper Server
on:
workflow_dispatch:
inputs:
environment:
description: 'Environment to Update'
type: environment
required: true
default: Test
jobs:
update-server:
runs-on: ubuntu-latest
environment: ${{inputs.environment}}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: ☕ Setup Java
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: 'gradle'
- name: 🐘 Setup Gradle
uses: gradle/actions/setup-gradle@v3
- name: 🐘 Gradle Build
run: CI=true ./gradlew :ansible:copyPaperPlugins --parallel --no-daemon
- name: Inject secrets
run: 'echo "$SECRETS_YML" > variables/secrets.yml'
shell: bash
working-directory: ./ansible
env:
SECRETS_YML: ${{secrets.SECRETS_YML}}
SUDO_PASSWORD: ${{secrets.SUDO_PASSWORD}}
- name: Update Paper Server
uses: dawidd6/action-ansible-playbook@v2
with:
playbook: ansible/playbooks/update-server-paper.yml
requirements: ansible/requirements.yml
key: ${{secrets.SSH_PRIVATE_KEY}}
known_hosts: ${{secrets.SSH_KNOWN_HOSTS}}
options: |
--inventory ./ansible/inventories/civmc-${{inputs.environment}}.yml
-e "ansible_become_password=${{secrets.SUDO_PASSWORD}}"

View File

@@ -0,0 +1,50 @@
name: 🏗️ Ansible | Update PvP Server
on:
workflow_dispatch:
inputs:
environment:
description: 'Environment to Update'
type: environment
required: true
default: Test
jobs:
update-server:
runs-on: ubuntu-latest
environment: ${{inputs.environment}}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: ☕ Setup Java
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: 'gradle'
- name: 🐘 Setup Gradle
uses: gradle/actions/setup-gradle@v3
- name: 🐘 Gradle Build
run: CI=true ./gradlew :ansible:copyPvpPlugins --parallel --no-daemon
- name: Inject secrets
run: 'echo "$SECRETS_YML" > variables/secrets.yml'
shell: bash
working-directory: ./ansible
env:
SECRETS_YML: ${{secrets.SECRETS_YML}}
SUDO_PASSWORD: ${{secrets.SUDO_PASSWORD}}
- name: Update PvP Server
uses: dawidd6/action-ansible-playbook@v2
with:
playbook: ansible/playbooks/update-server-pvp.yml
requirements: ansible/requirements.yml
key: ${{secrets.SSH_PRIVATE_KEY}}
known_hosts: ${{secrets.SSH_KNOWN_HOSTS}}
options: |
--inventory ./ansible/inventories/civmc-${{inputs.environment}}.yml
-e "ansible_become_password=${{secrets.SUDO_PASSWORD}}"

View File

@@ -2,6 +2,12 @@
hosts: all
become: true
vars:
servers:
- pvp
- paper
- proxy
tasks:
- name: Stop Server| Include Preflight
include_tasks: ../tasks/preflight-checks.yml

View File

@@ -2,6 +2,12 @@
hosts: all
become: true
vars:
servers:
- pvp
- paper
- proxy
tasks:
- name: Update Serer | Include Preflight
include_tasks: ../tasks/preflight-checks.yml

View File

@@ -0,0 +1,26 @@
- name: Update Server (Minecraft)
hosts: all
become: true
vars:
servers:
- paper
tasks:
- name: Update Serer | Include Preflight
include_tasks: ../tasks/preflight-checks.yml
- name: Update Server | Expand setting
include_tasks: ../tasks/expand-setting.yml
- name: Update Server | Include Stop Tasks
include_tasks:
file: '../tasks/stop-server.yml'
- name: Update Server | Include Deployment Tasks
include_tasks:
file: '../tasks/deploy/{{deploy_task}}.yml'
loop:
- stacks
loop_control:
loop_var: deploy_task

View File

@@ -0,0 +1,26 @@
- name: Update Server (Minecraft)
hosts: all
become: true
vars:
servers:
- pvp
tasks:
- name: Update Serer | Include Preflight
include_tasks: ../tasks/preflight-checks.yml
- name: Update Server | Expand setting
include_tasks: ../tasks/expand-setting.yml
- name: Update Server | Include Stop Tasks
include_tasks:
file: '../tasks/stop-server.yml'
- name: Update Server | Include Deployment Tasks
include_tasks:
file: '../tasks/deploy/{{deploy_task}}.yml'
loop:
- stacks
loop_control:
loop_var: deploy_task

View File

@@ -2,6 +2,12 @@
hosts: all
become: true
vars:
servers:
- pvp
- paper
- proxy
tasks:
- name: Update Serer | Include Preflight
include_tasks: ../tasks/preflight-checks.yml
@@ -33,7 +39,7 @@
- ufw
loop_control:
loop_var: configure_task
- name: Update Server | Include Deployment Tasks
include_tasks:
file: '../tasks/deploy/{{deploy_task}}.yml'

View File

@@ -27,8 +27,8 @@
path: '{{item.path}}'
state: directory
loop:
- { path: '/opt/stacks/minecraft/paper-data', enabled: setting.minecraft.enabled }
- { path: '/opt/stacks/minecraft/pvp-data', enabled: setting.minecraft.enabled }
- { path: '/opt/stacks/minecraft/paper-data', enabled: '{{ setting.minecraft.enabled and "''paper''" in servers }}' }
- { path: '/opt/stacks/minecraft/pvp-data', enabled: '{{ setting.minecraft.enabled and "''pvp''" in servers }}' }
- { path: '/opt/stacks/minecraft/mariadb-data', enabled: setting.minecraft.enabled }
- { path: '/opt/stacks/minecraft/postgres-data', enabled: setting.minecraft.enabled }
@@ -50,12 +50,12 @@
path: '/opt/stacks/{{item.path}}'
state: absent
loop:
- { path: 'minecraft/paper-config', enabled: setting.minecraft.enabled }
- { path: 'minecraft/paper-plugins', enabled: setting.minecraft.enabled }
- { path: 'minecraft/proxy-config', enabled: setting.minecraft.enabled }
- { path: 'minecraft/proxy-plugins', enabled: setting.minecraft.enabled }
- { path: 'minecraft/pvp-config', enabled: setting.minecraft.enabled }
- { path: 'minecraft/pvp-plugins', enabled: setting.minecraft.enabled }
- { path: 'minecraft/paper-config', enabled: '{{ setting.minecraft.enabled and "''paper''" in servers }}' }
- { path: 'minecraft/paper-plugins', enabled: '{{ setting.minecraft.enabled and "''paper''" in servers }}' }
- { path: 'minecraft/proxy-config', enabled: '{{ setting.minecraft.enabled and "''proxy''" in servers }}' }
- { path: 'minecraft/proxy-plugins', enabled: '{{ setting.minecraft.enabled and "''proxy''" in servers }}' }
- { path: 'minecraft/pvp-config', enabled: '{{ setting.minecraft.enabled and "''pvp''" in servers }}' }
- { path: 'minecraft/pvp-plugins', enabled: '{{ setting.minecraft.enabled and "''pvp''" in servers }}' }
- name: Deploy Stacks | Synchronize Files
become: false
@@ -67,12 +67,12 @@
dest: '~/stacks/{{item.target}}'
delete: true
loop:
- { file: '../../files/paper-config', target: 'minecraft', enabled: setting.minecraft.enabled }
- { file: '../../files/proxy-config', target: 'minecraft', enabled: setting.minecraft.enabled }
- { file: '../../files/pvp-config', target: 'minecraft', enabled: setting.minecraft.enabled }
- { file: '../../build/paper-plugins', target: 'minecraft', enabled: setting.minecraft.enabled }
- { file: '../../build/proxy-plugins', target: 'minecraft', enabled: setting.minecraft.enabled }
- { file: '../../build/pvp-plugins', target: 'minecraft', enabled: setting.minecraft.enabled }
- { file: '../../files/paper-config', enabled: '{{ setting.minecraft.enabled and "''paper''" in servers }}' }
- { file: '../../files/proxy-config', enabled: '{{ setting.minecraft.enabled and "''proxy''" in servers }}' }
- { file: '../../files/pvp-config', enabled: '{{ setting.minecraft.enabled and "''pvp''" in servers }}' }
- { file: '../../build/paper-plugins', enabled: '{{ setting.minecraft.enabled and "''paper''" in servers }}' }
- { file: '../../build/proxy-plugins', enabled: '{{ setting.minecraft.enabled and "''proxy''" in servers }}' }
- { file: '../../build/pvp-plugins', enabled: '{{ setting.minecraft.enabled and "''pvp''" in servers }}' }
- name: Deploy Stacks | Copy Files
shell: 'cp -r /home/{{ansible_user}}/stacks/{{item.file}} /opt/stacks/{{item.file}}'
@@ -80,12 +80,12 @@
- "'swarm_manager' in group_names"
- item.enabled
loop:
- { file: 'minecraft/paper-config', enabled: setting.minecraft.enabled }
- { file: 'minecraft/proxy-config', enabled: setting.minecraft.enabled }
- { file: 'minecraft/pvp-config', enabled: setting.minecraft.enabled }
- { file: 'minecraft/paper-plugins', enabled: setting.minecraft.enabled }
- { file: 'minecraft/proxy-plugins', enabled: setting.minecraft.enabled }
- { file: 'minecraft/pvp-plugins', enabled: setting.minecraft.enabled }
- { file: 'minecraft/paper-config', enabled: '{{ setting.minecraft.enabled and "''paper''" in servers }}' }
- { file: 'minecraft/proxy-config', enabled: '{{ setting.minecraft.enabled and "''proxy''" in servers }}' }
- { file: 'minecraft/pvp-config', enabled: '{{ setting.minecraft.enabled and "''pvp''" in servers }}' }
- { file: 'minecraft/paper-plugins', enabled: '{{ setting.minecraft.enabled and "''paper''" in servers }}' }
- { file: 'minecraft/proxy-plugins', enabled: '{{ setting.minecraft.enabled and "''proxy''" in servers }}' }
- { file: 'minecraft/pvp-plugins', enabled: '{{ setting.minecraft.enabled and "''pvp''" in servers }}' }
- name: Deploy Stacks | Deploy Stacks
when:

View File

@@ -2,17 +2,20 @@
- name: Stop Server | Stop Waterfall
when:
- "'swarm_manager' in group_names"
- - "'proxy' in servers"
- setting.minecraft.enabled
command: docker service scale minecraft_waterfall=0
- name: Stop Server | Stop Paper
when:
- "'swarm_manager' in group_names"
- "'paper' in servers"
- setting.minecraft.enabled
command: docker service scale minecraft_paper=0
- name: Stop Server | Stop PvP
when:
- "'swarm_manager' in group_names"
- "'pvp' in servers"
- setting.minecraft.enabled
command: docker service scale minecraft_pvp=0