deploy-bot
Deploy Discord bot to slate VM
v1a6ab5f109 steps
Steps
auth
keebDev02.authAuthenticate with Proxmox
Configuration
apiUrl: https://10.0.0.4:8006
username: root
password: ${{ vault.get("proxmox-vault", "password") }}
realm: pam
node: keeb-dev-02
skipTlsVerify: true
lookup-slate
fleet.lookupLookup slate VM to populate fleet resource
← depends on: auth (on succeeded)
Configuration
apiUrl: https://10.0.0.4:8006
ticket: ${{ model.keebDev02.resource.node.node.attributes.ticket }}
csrfToken: ${{ model.keebDev02.resource.node.node.attributes.csrfToken }}
node: keeb-dev-02
skipTlsVerify: true
sync-code
swampRepo.syncCodeRsync swamp repo to remote host
← depends on: lookup-slate (on succeeded)
Configuration
sshHost: ${{ model.fleet.resource.vm["slate"].attributes.ip }}
sshUser: root
remoteDir: /opt/proxmox-manager
sync-bot
swampRepo.syncCodeRsync bot directory to remote host
← depends on: lookup-slate (on succeeded)
Configuration
sshHost: ${{ model.fleet.resource.vm["slate"].attributes.ip }}
sshUser: root
remoteDir: /opt/proxmox-manager
sync-binary
swampRepo.syncBinaryCopy swamp binary to remote host
← depends on: lookup-slate (on succeeded)
Configuration
sshHost: ${{ model.fleet.resource.vm["slate"].attributes.ip }}
sshUser: root
remoteDir: /opt/proxmox-manager
sync-secrets
swampRepo.syncSecretsSync vault secrets to remote
← depends on: sync-code (on succeeded)
Configuration
sshHost: ${{ model.fleet.resource.vm["slate"].attributes.ip }}
sshUser: root
remoteDir: /opt/proxmox-manager
build-image
slateDocker.buildBuild Docker image on slate
← depends on: sync-code (on succeeded), sync-bot (on succeeded), sync-binary (on succeeded)
Configuration
sshHost: ${{ model.fleet.resource.vm["slate"].attributes.ip }}
sshUser: root
write-env
testVmSsh.execWrite .env file for the bot container
← depends on: sync-code (on succeeded)
Configuration
host: ${{ model.fleet.resource.vm[inputs.vmName].attributes.ip }}
user: root
start-bot
slateDocker.runStart bot container
← depends on: build-image (on succeeded), write-env (on succeeded)
Configuration
sshHost: ${{ model.fleet.resource.vm["slate"].attributes.ip }}
sshUser: root