A.- Die 1962 geborene verheiratete A._, Mutter einer Tochter (geboren 1982), bezog mit Wirkung ab 1. März 1992 aufgrund eines nach der gemischten Methode ermittelten Invaliditätsgrades von 40 % eine Viertelsrente. Im Rahmen eines im Juni 1995 eingeleiteten Revisionsverfahrens stufte die IV-Stelle des Kantons St. Gallen die Versicherte als ganztags Erwerbstätige ein, ermittelte einen Invaliditätsgrad von 60 % und sprach der Versicherten mit Verfügung vom 4. Juli 1997 ab 1. Juni 1995 eine halbe Invalidenrente nebst Kinderrente zu.
B.- Die hiegegen erhobene Beschwerde hiess das Versicherungsgericht des Kantons St. Gallen mit Entscheid vom 23. August 1999 gut und stellte in Aufhebung der Verfügung vom 4. Juli 1997 fest, dass A._ ab 1. Juni 1995 Anspruch auf eine ganze Invalidenrente hat.
C.- Die IV-Stelle des Kantons St. Gallen führt Verwaltungsgerichtsbeschwerde mit dem Antrag, in Aufhebung des vorinstanzlichen Entscheides sei ihre Verfügung vom 4. Juli 1997 zu bestätigen. - A._ lässt auf Abweisung der Verwaltungsgerichtsbeschwerde schliessen. Kantonales Gericht und Bundesamt für Sozialversicherung verzichten auf eine Vernehmlassung.

Das Eidg. Versicherungsgericht zieht in Erwägung:
1.- Im angefochtenen Entscheid werden die massgebenden Bestimmungen über die Bemessung des Invaliditätsgrades bei erwerbstätigen Versicherten nach der Einkommensvergleichsmethode (<ref-law>) und die Rentenrevision (<ref-law>) zutreffend dargelegt. Darauf kann verwiesen werden. Zu ergänzen ist, dass eine versicherte Person nach <ref-law> Anspruch auf eine ganze Rente hat, wenn sie mindestens zu 66 2/3 %, auf eine halbe Rente, wenn sie mindestens zu 50 %, oder auf eine Viertelsrente, wenn sie mindestens zu 40 % invalid ist; in Härtefällen hat sie nach <ref-law> bereits bei einem Invaliditätsgrad von mindestens 40 % Anspruch auf eine halbe Rente.
2.- Mit den Parteien ist gestützt auf das Gutachten der Medizinischen Abklärungsstelle (MEDAS) des Spitals X._ vom 31. Januar 1997 davon auszugehen, dass die Beschwerdegegnerin wegen ihrer Cervicobrachialgie und wegen der anhaltenden somatoformen Schmerzstörung bei chronischem cervicobrachialem Schmerzsyndrom, anscheinend ursprünglich somatisch initiiert, verbunden mit gemischten dissoziativen Symptomen in der früher ausgeübten Tätigkeit als Textilkontrolleurin zu 60 % und für die früher ebenfalls durchgeführte Putzfrauentätigkeit zu 70 % in der Arbeitsfähigkeit eingeschränkt ist. Daraus ist zu schliessen, dass die Beschwerdegegnerin bei einer leidensangepassten Tätigkeit noch über eine Restarbeitsfähigkeit von rund 40 % verfügt. Dabei kommen beispielsweise Kabelkonfektionierungs-, Kleingerätemontage- oder Kontrollarbeiten in Frage (Bericht des Berufsberaters vom 15. Mai 1997).
3.- Streitig und zu prüfen bleiben die erwerblichen Auswirkungen des Gesundheitsschadens. Dabei lässt es sich nicht beanstanden, dass die Beschwerde führende IV-Stelle und das kantonale Gericht die Beschwerdegegnerin nunmehr als ganztags Erwerbstätige betrachten und die Invalidität nach der Einkommensvergleichsmethode ermittelt haben.
a) aa) Umstritten ist zunächst die Ermittlung des hypothetischen Einkommens ohne Invalidität. In der Verwaltungsgerichtsbeschwerde stellt sich die IV-Stelle auf den Standpunkt, das Valideneinkommen sei gestützt auf die Lohnstrukturerhebungen 1996 Sektor 3 der Qualifikationsstufe 4 für Frauen im Dienstleistungssektor festzusetzen. Danach betrage der Durchschnittswert Fr. 3435. - im Monat, womit sich ein jährliches Valideneinkommen von Fr. 41'220. - ergebe. Die Beschwerdegegnerin ist der Auffassung, es sei das von ihr zuletzt im Reinigungsdienst des Kantons St. Gallen als Raumpflegerin erzielte Erwerbseinkommen auf eine Ganzjahresstelle umzurechnen, sodass für das Jahr 1996 ein Jahresbruttoeinkommen von Fr. 48'420. - resultiere. Das kantonale Gericht erachtete an und für sich die Aktenlage hinsichtlich des Valideneinkommens als abklärungsbedürftig, sah aber von einer Rückweisung ab, da auch beim tiefstmöglichen Valideneinkommen ein Invaliditätsgrad von zwei Dritteln resultiere. Die ungenügende Abklärung erblickte es darin, dass die Verwaltung hinsichtlich des bei privaten Reinigungsunternehmen erzielbaren Lohnes nur ein einziges Verweisungseinkommen erhoben habe.
bb) Die Beschwerdegegnerin war vor Eintritt der Teilinvalidität ab 1. Dezember 1987 als Heimarbeiterin (Maschinenausschneiderin) für die B._ AG tätig. Seit 1. November 1990 arbeitete sie zusätzlich als Raumpflegerin beim Amt Y._ mit einem Tagespensum von 3,75 Stunden. Diese Tätigkeit legte sie aus gesundheitlichen Gründen anfangs Februar 1991 nieder, die Heimarbeit Ende März 1991. Seither ging sie keiner Erwerbstätigkeit mehr nach.
Zunächst wurde der Invaliditätsgrad aufgrund der gemischten Methode ermittelt. Im Rahmen des im Sommer 1995 eingeleiteten Revisionsverfahrens wurde die Beschwerdegegnerin als ganztags Erwerbstätige eingestuft. Fraglich ist dabei zunächst, ob die Beschwerdegegnerin ganztags als Raumpflegerin tätig wäre und insbesondere ihr Pensum bei der öffentlichen Verwaltung hätte ausdehnen können. Davon kann aufgrund der von der IV-Stelle eingereichten Unterlagen und der bisherigen Aktenlage nicht mit dem Beweisgrad der überwiegenden Wahrscheinlichkeit ausgegangen werden, weil einerseits die öffentliche Verwaltung Ganztagesbeschäftigungen als Raumpflegerin von Ausnahmen abgesehen nicht anbietet (vgl. Schreiben des Amtes Y._ vom 15. September 1997) und anderseits im Kanton St. Gallen die öffentliche Hand dazu übergegangen ist, den Reinigungsdienst der kantonalen Verwaltung auszulagern, was mit dem Abbau von 25 Stellen verbunden war. Sodann ist in Betracht zu ziehen, dass die Beschwerdegegnerin die Teilzeittätigkeit als Raumpflegerin nur wenige Monate neben ihrer Heimarbeit ausgeübt hat. Unter diesen Umständen ist das hypothetische Einkommen ohne Invalidität gestützt auf die Lohnstrukturerhebung des Bundesamtes für Statistik (LSE) für das Jahr 1996 festzusetzen, und zwar - nachdem die Beschwerdegegnerin vor Eintritt der Teilinvalidität sowohl im privaten wie auch im öffentlichen Sektor tätig war - gestützt auf den Durchschnittswert beider Sektoren der Qualifikationsstufe 4 (einfache und repetitive Tätigkeiten) für Frauen. Danach beträgt der durchschnittliche Verdienst Fr. 3521. - im Monat bei einer durchschnittlichen Arbeitszeit von 4 1/3 Wochen zu 40 Arbeitsstunden (LSE 1996 S. 19, Tabelle A 3). Umgerechnet auf die effektive durchschnittliche Arbeitszeit von 41,9 Stunden (<ref-ruling>) ergibt sich ein Einkommen von Fr. 3688. - im Monat oder Fr. 44'256. - im Jahr (12 x Fr. 3688. -). Unter Berücksichtigung der allgemeinen Nominallohnentwicklung von 0,5 % für das Jahr 1997 ergibt sich für den massgebenden Zeitpunkt der Revisionsverfügung vom 4. Juli 1997 (<ref-ruling> Erw. 1a) ein hypothetisches jährliches Einkommen als Gesunde von Fr. 44'477. -. Dieser Betrag stimmt im Übrigen praktisch vollständig mit den Angaben des Amtes Y._ im Schreiben vom 15. September 1997 überein, wonach Raumpflegerinnen in der kantonalen Verwaltung im Moment bei einer Vollzeitbeschäftigung
Fr. 44'716. 80 pro Jahr verdienen könnten.
b) Streitig ist des Weitern das Invalideneinkommen, insbesondere die Höhe des Abzuges vom Tabellenlohn.
aa) Stellt man zugunsten der Beschwerdegegnerin für das Invalideneinkommen einzig auf die tieferen Lohnverhältnisse im privaten Sektor ab, so resultiert für das Jahr 1997 für eine Teilzeittätigkeit von 40 % ohne den streitigen Abzug ein Jahresverdienst von Fr. 17'457. - (40 % von Fr. 43'644. -). Denn nach Tabelle TA 1 der LSE 1996 betrug der durchschnittliche Monatslohn von Frauen im privaten Sektor für einfache und repetitive Tätigkeiten im Jahr 1996 Fr. 3455. - (bei einer wöchentlichen Arbeitszeit von 40 Stunden), was bei Annahme einer betriebsüblichen durchschnittlichen Arbeitszeit von 41,9 Stunden einem Gehalt von Fr. 3619. - entspricht, wozu die allgemeine Nominallohnentwicklung von 0,5 für das Jahr 1997 zu zählen ist, was zu einem Jahreseinkommen von Fr. 43'644. - führt.
bb) Im noch nicht veröffentlichten Urteil A. vom 9. Mai 2000, I 482/99 (vgl. dazu die Urteilsbesprechung in ZBJV 2000 S. 429), hat sich das Eidgenössische Versicherungsgericht eingehend zur Problematik des streitigen Abzugs von den Tabellenlöhnen geäussert. Dabei hat es zunächst die bisherige Rechtsprechung dargestellt, namentlich diejenige zu den Abzügen für Versicherte, die bisher körperliche Schwerarbeit verrichtet hatten und nach Eintritt eines Gesundheitsschadens auch für leichtere Arbeiten nur noch beschränkt einsatzfähig waren (vgl. dazu die nicht publizierte Erw. 4b des Urteils <ref-ruling>). Sodann hat das Gericht auf die Abzüge wegen anderer Faktoren wie Alter, Dauer der Betriebszugehörigkeit, Nationalität oder Aufenthaltskategorie sowie Beschäftigungsgrad (vgl. dazu AHI 1999 S. 181, 237 und 243 Erw. 4c) hingewiesen und zusammenfassend festgehalten, dass die betreffenden Abzüge nicht schematisch, sondern unter Berücksichtigung der gesamten Umstände des Einzelfalles vorzunehmen sind, damit sich, ausgehend von statistischen Werten, ein Einkommen ermitteln lässt, welches der im Einzelfall zumutbaren erwerblichen Verwertung der noch möglichen Verrichtungen im Rahmen der (Rest-)Arbeitsfähigkeit am besten entspricht. Dieser Gesichtspunkt verdient auch hinsichtlich der übrigen in Betracht fallenden einkommensbeeinflussenden Merkmale, des Lebensalters, der Anzahl Dienstjahre, der Nationalität oder Aufenthaltskategorie und des Beschäftigungsgrades den Vorzug. Der Abzug erfolgt nicht automatisch, sondern dann, wenn im Einzelfall Anhaltspunkte dafür bestehen, dass der Versicherte wegen eines oder mehrerer dieser Merkmale seine gesundheitlich bedingte (Rest-)Arbeitsfähigkeit auf dem allgemeinen Arbeitsmarkt nur mit unterdurchschnittlichem erwerblichem Erfolg verwerten kann. Es rechtfertigt sich dabei nicht, für jedes zur Anwendung gelangende Merkmal separat quantifizierte Abzüge vorzunehmen und diese zu addieren, da damit Wechselwirkungen ausgeblendet würden. Der Einfluss aller Merkmale auf das Invalideneinkommen ist unter Würdigung der Umstände im Einzelfall gesamthaft nach pflichtgemässem Ermessen zu schätzen. Dabei ist der Abzug vom statistischen Lohn unter Berücksichtigung aller jeweils in Betracht fallenden Merkmale auf insgesamt höchstens 25 % zu begrenzen. Die Verwaltung und - im Beschwerdefall - der Richter haben das verfassungsrechtliche Gebot der Begründungspflicht (<ref-law>) zu beachten, müssen daher wenigstens kurz die Überlegungen nennen, von denen sie sich leiten lassen und auf welche sich ihre Verfügung stützt (<ref-ruling> Erw. 1a mit Hinweisen). Dies soll verhindern, dass die Behörden auf unsachliche Motive zurückgreifen, und dem Betroffenen ermöglichen, die Verfügung gegebenenfalls sachgerecht anzufechten.
cc) Das kantonale Gericht hat die gesamten Abzüge vom Tabellenlohn auf rund 35 % festgesetzt. Es liess sich dabei von der Überlegung leiten, dass die Beschwerdegegnerin selbst bei körperlich leichter Arbeit angesichts der Kombination von somatischen und psychischen Beschwerden mit einem Abzug von 25 % für die Leistungseinschränkung gegenüber einer gesunden Teilzeitangestellten und einem weiteren Abzug von 10 % für die statistisch ausgewiesene, generelle überproportionale Lohnreduktion bei Teilzeitangestellten rechnen müsse, sodass ein Lohn von ca. 26 % des Lohnes einer Vollzeitangestellten verbleibe.
Im Lichte der erwähnten Rechtsprechung des Eidgenössischen Versicherungsgerichts erweist sich der Abzug des kantonalen Gerichts als zu hoch. Die Beschwerdegegnerin war im Zeitpunkt der Rentenrevisionsverfügung vom 4. Juli 1997 rund 35 Jahre alt. Neben dem Gesundheitsschaden und der noch zumutbaren Teilzeittätigkeit sind bei der seit dem 17. Altersjahr in der Schweiz lebenden Versicherten keine Gründe für die Herabsetzung des Invalideneinkommens ersichtlich.
Auch ohne Gesundheitsschaden hätte sie erst kurz vor Erlass der Revisionsverfügung eine ganztägige Erwerbstätigkeit aufgenommen. Es besteht daher kein Grund zur Vornahme von Abzügen unter Berücksichtigung des Lebens- und Dienstalters sowie der Nationalität (vgl. hiezu AHI 1999 S. 181 f. Erw. 3b und 242 f. Erw. 4c). In Würdigung aller Umstände rechtfertigt sich damit lediglich für die Teilzeitarbeit und für die Tatsache, dass gesundheitlich beeinträchtigte Versicherte, die selbst im Rahmen leichter Hilfsarbeiterinnentätigkeiten nicht mehr voll leistungsfähig sind, lohnmässig gegenüber ihren gesunden Kolleginnen benachteiligt sind (<ref-ruling> Erw. 3b/aa), ein Abzug von höchstens 10 %.
c) Bei Gewährung eines solchen Abzugs von 10 % resultiert ein hypothetisches Invalideneinkommen für 1997 von rund Fr. 15'712. - (Fr. 17'457. - minus Fr. 1745. -), was im Vergleich zum Einkommen als Gesunde von Fr. 44'477 .- einem Invaliditätsgrad von weniger als zwei Dritteln entspricht. Selbst wenn der Abzug grosszügig bemessen auf 15 % festgesetzt würde, bliebe der Invaliditätsgrad knapp unter der Schwelle von zwei Dritteln. Demnach ist für die Beschwerdegegnerin kein Anspruch auf eine ganze Rente ausgewiesen, weshalb sich die Verfügung der IV-Stelle vom 4. Juli 1997 im Ergebnis als rechtens erweist.

Demnach erkennt das Eidg. Versicherungsgericht:
I.In Gutheissung der Verwaltungsgerichtsbeschwerde wird der Entscheid des Versicherungsgerichts des Kantons St. Gallen vom 23. August 1999 aufgehoben.
II.Es werden keine Gerichtskosten erhoben.
III. Das Versicherungsgericht des Kantons St. Gallen wird über das Gesuch der Beschwerdegegnerin um unentgeltliche Verbeiständung für das kantonale Verfahren zu befinden haben.
IV.Dieses Urteil wird den Parteien, dem Versicherungsgericht des Kantons St. Gallen und dem Bundesamt für Sozialversicherung zugestellt.
Luzern, 27. September 2000
Im Namen des
Eidgenössischen Versicherungsgerichts
Der Präsident der IV. Kammer:
Der Gerichtsschreiber: