Files
pierre.geeraert c5d0fd8589
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 3s
change workflow name
2026-09-07 10:57:57 +01:00

99 lines
3.5 KiB
YAML

name: Dockerfile runner
run-name: Building and deploying to Prod 🚀
on:
push:
branches:
- main
paths-ignore:
- 'infra/production/dockerfile'
issue_comment:
types: [created]
workflow_dispatch: # Enables the manual run UI button
jobs:
Explore-Gitea-Actions:
env:
RUNNER_TOOL_CACHE: /toolcache
DEBUG: True
ALLOWED_HOSTS: "django.tryton.geeraert.eu"
container:
image: gitea.tryton.geeraert.eu/pi-ux-ce/custom-runner-debian-slim:1.0.6
volumes:
- act-toolcache:/opt/hostedtoolcache # this is where Runner store their cache default
runs-on: host-runner
steps:
- run: echo "🔎 The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
- name: restore git folder if exist
run: if [ -d "/opt/hostedtoolcache/${{ github.event.repository.name }}/" ]; then cp -r /opt/hostedtoolcache/${{ github.event.repository.name }}/ ${{ gitea.workspace }}; fi
- name: Check Docker Version
run: whereis docker
- name: Check out repository code
uses: actions/checkout@v4
clean: false
fetch-depth: 1
ref: 'main'
# - name: Manually check out repository code
# run: cd ${{ gitea.workspace }} ; git pull origin main
- run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner."
- name: List files in the repository
run: |
ls ${{ gitea.workspace }}
- name: Compute next version
id: versioning
run: |
latest="${{ vars.VERSION }}"
next_version=$(echo "$latest" | awk -F. -v OFS=. '{$NF += 1 ; print}')
echo "next_version=$next_version" >> $GITHUB_ENV
echo "Variables used :"
echo "------------------------------------------------"
echo "Next version: $next_version"
- name: Login to gitea
uses: docker/login-action@v3
with:
registry: gitea.tryton.geeraert.eu
username: ${{ secrets.USERNAME_GITEA }}
password: ${{ secrets.PASSWORD_GITEA }}
- name: Build image
run: |
docker build \
-f infra/production/dockerfile \
--build-arg ALLOWED_HOSTS='django.tryton.geeraert.eu' \
--build-arg DEBUG='True' \
-t gitea.tryton.geeraert.eu/pi-ux-ce/django-python:latest \
-t gitea.tryton.geeraert.eu/pi-ux-ce/django-python:${{ env.next_version }} \
.
- name: Push image
run: |
docker push gitea.tryton.geeraert.eu/pi-ux-ce/django-python:latest
docker push gitea.tryton.geeraert.eu/pi-ux-ce/django-python:${{ env.next_version }}
- name: Rollout Django to force pulling the new image
uses: actions-hub/kubectl@master
env:
KUBE_CONFIG: ${{ secrets.KUBE_CONFIG }}
with:
args: rollout restart deployment django -n django
- run: echo "🍏 This job's status is ${{ job.status }}."
- name: update version in the variable
run: |
curl -X PUT -H "Content-Type: application/json" \
--user ${{ secrets.USERNAME_GITEA }}:${{ secrets.PASSWORD_GITEA }} \
https://gitea.tryton.geeraert.eu/api/v1/repos/pi-ux-ce/${{ github.event.repository.name }}/actions/variables/VERSION \
-d "{\"Value\":\"$next_version\"}"
- name: backup git for future use
run: cp -r ${{ gitea.workspace }} /opt/hostedtoolcache/${{ github.event.repository.name }}/