Initialize Project
This commit is contained in:
68
.gitea/workflows/main.yml
Normal file
68
.gitea/workflows/main.yml
Normal file
@@ -0,0 +1,68 @@
|
||||
name: Run tests, build docker images and deploy
|
||||
run-name: Run tests, build docker images and deploy
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
DOCKER_JOB_ID: mscc-react-app
|
||||
|
||||
jobs:
|
||||
docker-build:
|
||||
name: Docker build and push
|
||||
runs-on: ubuntu-latest
|
||||
needs: test
|
||||
defaults:
|
||||
run:
|
||||
shell: sh
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
- name: Docker info
|
||||
run: docker info
|
||||
- name: Login to Gitea
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: https://${{ vars.DOMAIN_NAME_GITEA }}
|
||||
username: ${{ secrets.CI_REGISTRY_USER_GITEA }}
|
||||
password: ${{ secrets.CI_BUILD_TOKEN_GITEA }}
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
push: true
|
||||
tags: '${{ vars.DOMAIN_NAME_GITEA }}/${{ gitea.repository }}:latest'
|
||||
deploy:
|
||||
name: Deploy on server
|
||||
runs-on: ubuntu-latest
|
||||
needs: docker-build
|
||||
steps:
|
||||
- name: Install openssh-client
|
||||
run: |
|
||||
apt update -qy
|
||||
apt install -y openssh-client
|
||||
- name: Configure SSH
|
||||
run: |
|
||||
mkdir -p ~/.ssh
|
||||
chmod 700 ~/.ssh
|
||||
export SSH_PRIVATE_KEY_PATH=~/.ssh/id_rsa
|
||||
echo "${{ secrets.WORKER_SSH_PRIVATE_KEY }}" > $SSH_PRIVATE_KEY_PATH
|
||||
chmod 600 $SSH_PRIVATE_KEY_PATH
|
||||
ssh-keyscan ${{ vars.SERVER_ADDRESS }} >> ~/.ssh/known_hosts
|
||||
chmod 644 ~/.ssh/known_hosts
|
||||
echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
|
||||
eval $(ssh-agent -s)
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
- name: Rebuild container
|
||||
run: |
|
||||
docker stop ${{ env.DOCKER_JOB_ID }} || true
|
||||
docker rm ${{ env.DOCKER_JOB_ID }} || true
|
||||
scp docker-compose.yml ${{ vars.SERVER_USERNAME }}@${{ vars.SERVER_ADDRESS }}:/tmp/docker-compose.yml
|
||||
ssh -tt -l ${{ vars.SERVER_USERNAME }} ${{ vars.SERVER_ADDRESS }} "cd /tmp/ && docker compose down && docker pull ${{ vars.DOMAIN_NAME_GITEA }}/${{ gitea.repository }}:latest && docker compose up -d && rm -f /tmp/docker-compose.yml"
|
||||
Reference in New Issue
Block a user