name: Deploy to IIS on: push: branches: - main - master workflow_dispatch: jobs: deploy: runs-on: ubuntu-latest env: LOCAL_PUBLISH: ${{ github.workspace }}/publish MOUNT_POINT: /mnt/iis-deploy SHARE: //10.0.0.148/wwwroot TARGET_SUBDIR: approval_route steps: - name: Checkout uses: actions/checkout@v4 - name: Setup .NET uses: actions/setup-dotnet@v4 with: dotnet-version: '10.0.x' - name: Restore run: dotnet restore backend/Tnsu.ApprovalRoute.sln - name: Publish (local) run: dotnet publish backend/src/Tnsu.ApprovalRoute.Api/Tnsu.ApprovalRoute.Api.csproj -c Release -o "$LOCAL_PUBLISH" - name: Install cifs-utils run: | if command -v mount.cifs >/dev/null 2>&1 && command -v rsync >/dev/null 2>&1; then echo "cifs-utils and rsync already installed, skipping apt-get" else sudo apt-get update && sudo apt-get install -y cifs-utils rsync fi - name: Mount IIS share env: DEPLOY_CREDS_B64: ${{ secrets.DEPLOY_CREDS_B64 }} run: | echo "$DEPLOY_CREDS_B64" | base64 -d > /tmp/creds chmod 600 /tmp/creds echo "Credentials file created" sudo mkdir -p "$MOUNT_POINT" sudo mount -t cifs "$SHARE" "$MOUNT_POINT" \ -o credentials=/tmp/creds,vers=3.0,sec=ntlmssp,uid=$(id -u),gid=$(id -g),file_mode=0777,dir_mode=0777 - name: Take site offline run: | sudo mkdir -p "$MOUNT_POINT/$TARGET_SUBDIR" echo "