All checks were successful
Deploy Gitea Custom / build-and-deploy (push) Successful in 3m30s
150 lines
4.8 KiB
YAML
150 lines
4.8 KiB
YAML
name: Deploy Gitea Custom
|
|
run-name: ${{ gitea.actor }} deploying Gitea
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- deploy_custom
|
|
|
|
env:
|
|
GITEA_VERSION: deploy_custom
|
|
CONTAINER_NAME: gitea-production
|
|
VOLUME_NAME: gitea_data
|
|
STORAGE_DRIVER: vfs
|
|
|
|
#jobs:
|
|
# build-and-deploy:
|
|
# runs-on: ubuntu-latest #
|
|
#
|
|
# steps:
|
|
# - name: Checkout code
|
|
# uses: actions/checkout@v4
|
|
#
|
|
# - name: Install Podman
|
|
# run: |
|
|
# sudo apt-get update
|
|
# sudo apt-get install -y podman
|
|
#
|
|
# - name: Configure Podman
|
|
# run: |
|
|
# sudo mkdir -p /etc/containers
|
|
# cat <<EOF | sudo tee /etc/containers/storage.conf
|
|
# [storage]
|
|
# driver = "vfs"
|
|
# runroot = "/run/containers/storage"
|
|
# graphroot = "/var/lib/containers/storage"
|
|
# [storage.options]
|
|
# mount_program = ""
|
|
# EOF
|
|
#
|
|
# - name: Create volume if not exists
|
|
# run: |
|
|
# podman volume exists $VOLUME_NAME || podman volume create $VOLUME_NAME
|
|
#
|
|
# - name: Build container image
|
|
# run: |
|
|
# podman build \
|
|
# --build-arg GITEA_VERSION=${{ env.GITEA_VERSION }} \
|
|
# -t gitea-custom:${{ github.sha }} .
|
|
#
|
|
# - name: Stop existing container
|
|
# run: |
|
|
# podman stop ${{ env.CONTAINER_NAME }} || true
|
|
#
|
|
# - name: Backup current container (optional)
|
|
# run: |
|
|
# podman commit ${{ env.CONTAINER_NAME }} gitea-backup:$(date +%Y%m%d_%H%M%S) || true
|
|
#
|
|
# - name: Remove old container
|
|
# run: |
|
|
# podman rm ${{ env.CONTAINER_NAME }} || true
|
|
#
|
|
# - name: Run new container with data persistence
|
|
# run: |
|
|
# # todo надо добавить по надобности другие переменные для гити
|
|
# podman run -d --name ${{ env.CONTAINER_NAME }} \
|
|
# -e GITEA__database__DB_TYPE=postgres \
|
|
# -e GITEA__database__HOST=${{ secrets.GITEA_DB_HOST }} \
|
|
# -e GITEA__database__NAME=${{ secrets.GITEA_DB_NAME }} \
|
|
# -e GITEA__database__USER=${{ secrets.GITEA_DB_USER }} \
|
|
# -e GITEA__database__PASSWD=${{ secrets.GITEA_DB_PASS }} \
|
|
# -e USER_UID=1000 \
|
|
# -e USER_GID=1000 \
|
|
# -v ${{ env.VOLUME_NAME }}:/data \
|
|
# -p 3000:3000 \
|
|
# -p 2222:22 \
|
|
# --restart unless-stopped \
|
|
# gitea-custom:latest
|
|
#
|
|
# - name: Wait for Gitea to start
|
|
# run: |
|
|
# sleep 30
|
|
#
|
|
# - name: Verify container is running
|
|
# run: |
|
|
# podman ps -a
|
|
# podman logs ${{ env.CONTAINER_NAME }} --tail 20
|
|
# podman inspect ${{ env.CONTAINER_NAME }} --format='{{.State.Status}}'
|
|
|
|
jobs:
|
|
build-and-deploy:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
|
|
- name: Build Docker image
|
|
run: |
|
|
docker build \
|
|
--build-arg GITEA_VERSION=${{ env.GITEA_VERSION }} \
|
|
-t gitea-custom:${{ github.sha }} \
|
|
-t gitea-custom:latest .
|
|
|
|
- name: Stop existing container
|
|
run: |
|
|
docker stop ${{ env.CONTAINER_NAME }} || true
|
|
|
|
- name: Backup current container (optional)
|
|
run: |
|
|
docker commit ${{ env.CONTAINER_NAME }} gitea-backup:$(date +%Y%m%d_%H%M%S) || true
|
|
|
|
- name: Remove old container
|
|
run: |
|
|
docker rm ${{ env.CONTAINER_NAME }} || true
|
|
|
|
- name: Run new container with data persistence
|
|
env:
|
|
DB_HOST: ${{ secrets.GITEA_DB_HOST }}
|
|
DB_USER: ${{ secrets.GITEA_DB_USER }}
|
|
DB_PASS: ${{ secrets.GITEA_DB_PASS }}
|
|
DB_NAME: ${{ secrets.GITEA_DB_NAME }}
|
|
run: |
|
|
# todo надо добавить по надобности другие переменные для гити
|
|
docker run -d --name ${{ env.CONTAINER_NAME }} \
|
|
-e GITEA__database__DB_TYPE=postgres \
|
|
-e GITEA__database__HOST=${{ secrets.GITEA_DB_HOST }} \
|
|
-e GITEA__database__NAME=${{ secrets.GITEA_DB_NAME }} \
|
|
-e GITEA__database__USER=${{ secrets.GITEA_DB_USER }} \
|
|
-e GITEA__database__PASSWD=${{ secrets.GITEA_DB_PASS }} \
|
|
-e USER_UID=1000 \
|
|
-e USER_GID=1000 \
|
|
-v ${{ env.VOLUME_NAME }}:/data \
|
|
-p 3000:3000 \
|
|
-p 2222:22 \
|
|
--restart unless-stopped \
|
|
gitea-custom:latest
|
|
|
|
- name: Wait for Gitea to start
|
|
run: |
|
|
sleep 30
|
|
|
|
- name: Verify container is running
|
|
run: |
|
|
docker ps -a
|
|
docker logs ${{ env.CONTAINER_NAME }} --tail 20
|
|
docker inspect ${{ env.CONTAINER_NAME }} --format='{{.State.Status}}'
|