68 lines
1.5 KiB
YAML
68 lines
1.5 KiB
YAML
---
|
|
|
|
# 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'
|
|
with:
|
|
context: '.'
|
|
file: 'Dockerfile.linux.amd64'
|
|
push: true
|
|
tags: |
|
|
cr.simoncor.net/siempie/roundcube:latest
|
|
cr.simoncor.net/siempie/roundcube:v1
|
|
|
|
|
|
# ansible deployment
|
|
Deployment:
|
|
runs-on: 'ubuntu-latest'
|
|
needs: 'Build'
|
|
steps:
|
|
|
|
# ansible deployment
|
|
- name: 'Ansible deployment'
|
|
uses: 'appleboy/ssh-action@v1.1.0'
|
|
with:
|
|
|
|
# bastion
|
|
proxy_host: 'bastion.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
|