98 lines
3.5 KiB
YAML
98 lines
3.5 KiB
YAML
name: Gitea Actions Demo
|
|
run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀
|
|
on:
|
|
push:
|
|
issue_comment:
|
|
types: [created]
|
|
|
|
jobs:
|
|
Explore-Gitea-Actions:
|
|
env:
|
|
RUNNER_TOOL_CACHE: /toolcache
|
|
container:
|
|
volumes:
|
|
- act-toolcache:/opt/hostedtoolcache # this is where Runner store their cache default
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- run: echo "🔎 The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
|
|
- name: Check out repository code
|
|
uses: actions/checkout@v4
|
|
- run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner."
|
|
- name: List files in the repository
|
|
run: |
|
|
ls /opt/hostedtoolcache
|
|
- name: List files in the repository
|
|
run: |
|
|
touch /opt/hostedtoolcache/hello.txt
|
|
- name: List files in the repository
|
|
run: |
|
|
ls /opt/hostedtoolcache
|
|
- 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: Cache Docker layers
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: /opt/hostedtoolcache/.buildx-cache
|
|
key: ${{ runner.os }}-buildx-${{ github.sha }}
|
|
restore-keys: |
|
|
${{ runner.os }}-buildx-
|
|
|
|
|
|
- name: inject cache into docker
|
|
uses: reproducible-containers/buildkit-cache-dance@v3.1.0
|
|
with:
|
|
cache-source: /opt/hostedtoolcache/pip
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
|
|
- 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 and push
|
|
uses: docker/build-push-action@v6
|
|
with:
|
|
push: true
|
|
tags: |
|
|
gitea.tryton.geeraert.eu/pi-ux-ce/django-python:latest
|
|
gitea.tryton.geeraert.eu/pi-ux-ce/django-python:${{ env.next_version }}
|
|
cache-from: type=local,src=/opt/hostedtoolcache/.buildx-cache
|
|
cache-to: type=local,dest=/opt/hostedtoolcache/.buildx-cache-new,mode=max
|
|
|
|
- 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
|
|
|
|
- name: Rollout Celery worker to force pulling the new image
|
|
uses: actions-hub/kubectl@master
|
|
env:
|
|
KUBE_CONFIG: ${{ secrets.KUBE_CONFIG }}
|
|
with:
|
|
args: rollout restart deployment celery-worker -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\"}" |