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 jobs: build-and-deploy: runs-on: ubuntu-latest #1 steps: - name: Checkout code uses: actions/checkout@v4 - name: Install Podman run: | sudo apt-get update sudo apt-get install -y podman podman-docker - 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 }} \ -t gitea-custom:latest . - 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}}'