49 lines
2.1 KiB
YAML
49 lines
2.1 KiB
YAML
name: Production-Deploy
|
|
on:
|
|
push:
|
|
tags:
|
|
- v1.**
|
|
|
|
jobs:
|
|
Build-and-deploy-Production:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- run: echo " The job was automatically triggered by a ${{ gitea.event_name }} event."
|
|
- run: echo " The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
|
|
- name: Check out repository code
|
|
uses: actions/checkout@v3
|
|
- run: echo " The ${{ gitea.repository }} repository has been cloned to the runner."
|
|
- uses: actions/setup-dotnet@v3
|
|
with:
|
|
dotnet-version: '7.0.x'
|
|
- run: dotnet publish ${{ gitea.workspace }}/csharp/App/Backend/Backend.csproj -c Release -r linux-x64 --self-contained true -p:PublishTrimmed=false
|
|
- uses: actions/setup-node@v3
|
|
- run: |
|
|
npm --prefix ${{ gitea.workspace }}/typescript/frontend-marios2 install
|
|
npm --prefix ${{ gitea.workspace }}/typescript/frontend-marios2 run build
|
|
- uses: burnett01/rsync-deployments@6.0.0
|
|
- run: |
|
|
cd ${{ gitea.workspace }}
|
|
rsync -av ./csharp/App/Backend/bin/Release/net6.0/linux-x64/publish/ ubuntu@${{ secrets.PRODUCTION_SSH_HOST }}:~/backend
|
|
rsync -av ./typescript/frontend-marios2/* ubuntu@${{ secrets.PRODUCTION_SSH_HOST }}:~/frontend/
|
|
- name: Configure SSH
|
|
run: |
|
|
mkdir -p ~/.ssh/
|
|
echo "$SSH_KEY" > ~/.ssh/production.key
|
|
chmod 600 ~/.ssh/production.key
|
|
cat >>~/.ssh/config <<END
|
|
Host production
|
|
HostName $SSH_HOST
|
|
User $SSH_USER
|
|
IdentityFile ~/.ssh/production.key
|
|
StrictHostKeyChecking no
|
|
END
|
|
env:
|
|
SSH_USER: ubuntu
|
|
SSH_KEY: ${{ secrets.PRODUCTION_SSH_KEY }}
|
|
SSH_HOST: ${{ secrets.PRODUCTION_SSH_HOST }}
|
|
- run |
|
|
ssh production 'sudo systemctl restart backend'
|
|
ssh production 'sudo cp -rf ~/frontend/build/* /var/www/html/monitor.innov.energy/html/'
|
|
ssh production 'sudo npm install -g serve'
|
|
- run: echo " This job's status is ${{ job.status }}." |