diff --git a/.gitea/workflows/dockerfile_runner.yaml b/.gitea/workflows/dockerfile_runner.yaml new file mode 100644 index 0000000..84e65ae --- /dev/null +++ b/.gitea/workflows/dockerfile_runner.yaml @@ -0,0 +1,98 @@ +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 }}/