---
# generic
name: 'Build and Publish'
on:
push:
branches:
- 'main'
# build job
jobs:
# build container
Build:
runs-on: 'ubuntu-latest'
steps:
# checkout code
- name: 'Clone repo'
uses: 'actions/checkout@v4'
# login to cr.simoncor.net
- name: 'Login to cr.simoncor.net'
uses: 'docker/login-action@v3'
with:
registry: 'cr.simoncor.net'
username: ${{ vars.REGISTER_USERNAME }}
password: ${{ vars.REGISTER_PASSWORD }}
# build and publish container
- name: 'Build and Publish'
uses: 'docker/build-push-action@v6'
context: '.'
file: 'Dockerfile.linux.amd64'
push: true
tags: |
cr.simoncor.net/siempie/roundcube:latest
cr.simoncor.net/siempie/roundcube:v1
# ansible deployment
Deployment:
- name: 'Ansible deployment'
uses: 'appleboy/ssh-action@v1.0.3'
# bastion
proxy_host: 'siempie.com'
proxy_port: '22'
proxy_username: ${{ secrets.USERNAME }}
proxy_key: ${{ secrets.SSHKEY }}
# ansible management
host: 'ansible.siempie.internal'
port: '22'
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SSHKEY }}
# command
script: |
sudo /usr/local/bin/ansible-playbook /etc/ansible/playbooks/production/roundcube.yaml