Skip to content

Dependancy updates

Dependancy updates #9

name: MCTools API (Stable)
on:
workflow_dispatch:
push:
branches: [ master ]
paths:
- 'MCTools.API/**'
- 'MCTools.SDK/**'
pull_request:
branches: [ master ]
paths:
- 'MCTools.API/**'
- 'MCTools.SDK/**'
env:
CSPROJ: MCTools.API/MCTools.API.csproj
PUBLISH_PATH: bin/Publish
RELEASE_TYPE: Release
SERVER_TARGET: /var/www/mctools.api
SERVICE_NAME: mctools.api
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup .NET 6.0
uses: actions/setup-dotnet@v2
with:
dotnet-version: 6.0.x
- name: Restore dependencies
run: dotnet restore ${{ env.CSPROJ }}
- name: Setup appsettings.json
run: cp MCTools.API/appsettings.json.example MCTools.API/appsettings.json
- name: Build
run: dotnet build ${{ env.CSPROJ }} -c ${{ env.RELEASE_TYPE }} --no-restore
- name: Test
run: dotnet test ${{ env.CSPROJ }} --no-build --verbosity normal
- name: Variable Substitution
uses: microsoft/variable-substitution@v1
with:
files: 'MCTools.API/appsettings.json'
env:
ConnectionStrings.MongoDb: ${{ secrets.MONGODB_BETA }}
Auth0.Authority: ${{ secrets.AUTH0_AUTH }}
Auth0.ClientId: ${{ secrets.AUTH0_ID }}
Auth0.ClientSecret: ${{ secrets.AUTH0_SECRET }}
Tokens.GitHub: ${{ secrets.GH_TOKEN }}
Common.Email: ${{ secrets.EMAIL }}
- name: Publish
run: dotnet publish ${{ env.CSPROJ }} -c ${{ env.RELEASE_TYPE }} -o ${{ env.PUBLISH_PATH }}
- name: Deploy
uses: appleboy/scp-action@v0.1.4
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SSHKEY }}
port: ${{ secrets.PORT }}
source: "${{ env.PUBLISH_PATH }}/*"
target: ${{ env.SERVER_TARGET }}.temp
strip_components: 2
- name: Switch Active Directory and Restart Service
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SSHKEY }}
port: ${{ secrets.PORT }}
script: |
ACTIVE_DIR=$(readlink ${{ env.SERVER_TARGET }}.live)
if [ "$ACTIVE_DIR" == "${{ env.SERVER_TARGET }}.slot1" ]; then
IDLE_SLOT_APIBETA="${{ env.SERVER_TARGET }}.slot2"
else
IDLE_SLOT_APIBETA="${{ env.SERVER_TARGET }}.slot1"
fi
sudo rm -rf $IDLE_SLOT_APIBETA
sudo mv ${{ env.SERVER_TARGET }}.temp $IDLE_SLOT_APIBETA
sudo ln -sfn $IDLE_SLOT_APIBETA ${{ env.SERVER_TARGET }}.live
sudo chown -R ${{ secrets.USERNAME }}:www-data /var/www
sudo chmod -R u+rwx /var/www
sudo chmod -R g+rwx /var/www
sudo systemctl restart ${{ env.SERVICE_NAME }}