Files
Wordpress-Ansible/.gitea/workflows/yamllint.yml
sotos 77066def09
Some checks failed
CI/CD Pipeline / lint (push) Failing after 5s
CI/CD Pipeline / build (push) Has been skipped
CI/CD Pipeline / deploy (push) Has been skipped
ci/cd
2025-12-16 09:47:15 +01:00

81 lines
1.9 KiB
YAML

name: CI/CD Pipeline
on:
push:
branches: [ main ]
jobs:
lint:
runs-on: docker
container:
image: node:20-alpine # Node available for Gitea Actions
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install linters system-wide
run: apk add --no-cache py3-yamllint py3-ansible-lint git bash
- name: Run linters
run: |
yamllint .
ansible-lint ansible/playbooks
build:
runs-on: docker
container:
image: node:20-alpine
needs: lint
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Docker CLI
run: |
apk add --no-cache docker bash git
dockerd & sleep 5
- name: Login to Gitea Registry
run: |
echo "${{ secrets.REGISTRY_PASSWORD }}" | \
docker login dns.s-martika.com \
-u "${{ secrets.REGISTRY_USER }}" \
--password-stdin
- name: Build Docker image
run: docker build -t dns.s-martika.com/smartika/snake:latest frontend/
- name: Push Docker image
run: docker push dns.s-martika.com/smartika/snake:latest
deploy:
runs-on: docker
container:
image: node:20-alpine
needs: build
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependencies
run: |
apk add --no-cache openssh bash git python3 py3-pip
pip install ansible
- name: Setup SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan -H <SERVER_IP> >> ~/.ssh/known_hosts
- name: Run Ansible deployment
run: ansible-playbook -i ../../ansible/inventory.yaml ../../site.yml
- name: Run Ansible deployment
run: |
ansible-playbook \
-i \
./site.yml