1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-10-08 22:51:57 +02:00

Поднят номер версии, начало SSH

This commit is contained in:
Anton Titovets
2025-09-18 13:47:29 +03:00
parent c2759797bb
commit bf1baac790
62 changed files with 1012 additions and 212 deletions

View File

@@ -54,7 +54,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -180,7 +180,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -298,7 +298,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -344,7 +344,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -398,7 +398,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -444,7 +444,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -490,7 +490,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -536,7 +536,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -582,7 +582,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -624,7 +624,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -702,7 +702,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -752,7 +752,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -806,7 +806,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -864,7 +864,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -914,7 +914,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -968,7 +968,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1030,7 +1030,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1084,7 +1084,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1154,7 +1154,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1256,7 +1256,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1306,7 +1306,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1372,7 +1372,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1418,7 +1418,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1468,7 +1468,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1518,7 +1518,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1568,7 +1568,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1610,7 +1610,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1672,7 +1672,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1722,7 +1722,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"

View File

@@ -54,7 +54,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -180,7 +180,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -298,7 +298,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -344,7 +344,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -398,7 +398,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -444,7 +444,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -490,7 +490,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -536,7 +536,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -582,7 +582,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -624,7 +624,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -702,7 +702,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -752,7 +752,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -806,7 +806,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -864,7 +864,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -914,7 +914,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -968,7 +968,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1030,7 +1030,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1084,7 +1084,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1154,7 +1154,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1256,7 +1256,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1306,7 +1306,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1372,7 +1372,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1418,7 +1418,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1468,7 +1468,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1518,7 +1518,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1568,7 +1568,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1610,7 +1610,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1672,7 +1672,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"
@@ -1722,7 +1722,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"

View File

@@ -13,7 +13,7 @@ jobs:
- name: Установить OInt - name: Установить OInt
run: | run: |
TEMP_DEB="$(mktemp)" && TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb' && wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb' &&
sudo dpkg -i "$TEMP_DEB" sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB" rm -f "$TEMP_DEB"

6
ci/cli_deb_test_en vendored
View File

@@ -25,7 +25,7 @@ pipeline {
steps { steps {
script { script {
// Скачиваем новый deb-пакет oint // Скачиваем новый deb-пакет oint
sh 'wget -O oint_1.27.0_all_en.deb https://jenkins.openintegrations.dev/job/OpiBuild/job/OpiRelease/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_en.deb ' sh 'wget -O oint_1.28.0_all_en.deb https://jenkins.openintegrations.dev/job/OpiBuild/job/OpiRelease/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_en.deb '
} }
} }
} }
@@ -34,14 +34,14 @@ pipeline {
steps { steps {
script { script {
// Устанавливаем скаченный пакет // Устанавливаем скаченный пакет
sh 'dpkg -i oint_1.27.0_all_en.deb' sh 'dpkg -i oint_1.28.0_all_en.deb'
} }
} }
} }
stage('Prepare'){ stage('Prepare'){
steps{ steps{
sh 'cd ./src/en/OInt && opm build && opm install oint-1.27.0.ospx && rm oint-1.27.0.ospx' sh 'cd ./src/en/OInt && opm build && opm install oint-1.28.0.ospx && rm oint-1.28.0.ospx'
withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) { withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) {
sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg' sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg'
} }

6
ci/cli_deb_test_ru vendored
View File

@@ -25,7 +25,7 @@ pipeline {
steps { steps {
script { script {
// Скачиваем новый deb-пакет oint // Скачиваем новый deb-пакет oint
sh 'wget -O oint_1.27.0_all_ru.deb https://jenkins.openintegrations.dev/job/OpiBuild/job/OpiRelease/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_ru.deb ' sh 'wget -O oint_1.28.0_all_ru.deb https://jenkins.openintegrations.dev/job/OpiBuild/job/OpiRelease/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_ru.deb '
} }
} }
} }
@@ -34,14 +34,14 @@ pipeline {
steps { steps {
script { script {
// Устанавливаем скаченный пакет // Устанавливаем скаченный пакет
sh 'dpkg -i oint_1.27.0_all_ru.deb' sh 'dpkg -i oint_1.28.0_all_ru.deb'
} }
} }
} }
stage('Prepare'){ stage('Prepare'){
steps{ steps{
sh 'cd ./src/ru/OInt && opm build && opm install oint-1.27.0.ospx && rm oint-1.27.0.ospx' sh 'cd ./src/ru/OInt && opm build && opm install oint-1.28.0.ospx && rm oint-1.28.0.ospx'
withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) { withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) {
sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg' sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg'
} }

6
ci/cli_rpm_test_en vendored
View File

@@ -24,7 +24,7 @@ pipeline {
steps { steps {
script { script {
// Скачиваем новый rpm-пакет oint // Скачиваем новый rpm-пакет oint
sh 'wget -O oint-1.27.0-1.noarch_en.rpm https://jenkins.openintegrations.dev/job/OpiBuild/job/OpiRelease/lastSuccessfulBuild/artifact/1.27.0/oint-1.27.0-1.noarch_en.rpm ' sh 'wget -O oint-1.28.0-1.noarch_en.rpm https://jenkins.openintegrations.dev/job/OpiBuild/job/OpiRelease/lastSuccessfulBuild/artifact/1.28.0/oint-1.28.0-1.noarch_en.rpm '
} }
} }
} }
@@ -33,14 +33,14 @@ pipeline {
steps { steps {
script { script {
// Устанавливаем скаченный пакет // Устанавливаем скаченный пакет
sh 'rpm -ivh --replacepkgs oint-1.27.0-1.noarch_en.rpm' sh 'rpm -ivh --replacepkgs oint-1.28.0-1.noarch_en.rpm'
} }
} }
} }
stage('Prepare'){ stage('Prepare'){
steps{ steps{
sh 'cd ./src/en/OInt && opm build && opm install oint-1.27.0.ospx && rm oint-1.27.0.ospx' sh 'cd ./src/en/OInt && opm build && opm install oint-1.28.0.ospx && rm oint-1.28.0.ospx'
withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) { withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) {
sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg' sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg'
} }

6
ci/cli_rpm_test_ru vendored
View File

@@ -24,7 +24,7 @@ pipeline {
steps { steps {
script { script {
// Скачиваем новый rpm-пакет oint // Скачиваем новый rpm-пакет oint
sh 'wget -O oint-1.27.0-1.noarch_ru.rpm https://jenkins.openintegrations.dev/job/OpiBuild/job/OpiRelease/lastSuccessfulBuild/artifact/1.27.0/oint-1.27.0-1.noarch_ru.rpm ' sh 'wget -O oint-1.28.0-1.noarch_ru.rpm https://jenkins.openintegrations.dev/job/OpiBuild/job/OpiRelease/lastSuccessfulBuild/artifact/1.28.0/oint-1.28.0-1.noarch_ru.rpm '
} }
} }
} }
@@ -33,14 +33,14 @@ pipeline {
steps { steps {
script { script {
// Устанавливаем скаченный пакет // Устанавливаем скаченный пакет
sh 'rpm -ivh --replacepkgs oint-1.27.0-1.noarch_ru.rpm' sh 'rpm -ivh --replacepkgs oint-1.28.0-1.noarch_ru.rpm'
} }
} }
} }
stage('Prepare'){ stage('Prepare'){
steps{ steps{
sh 'cd ./src/ru/OInt && opm build && opm install oint-1.27.0.ospx && rm oint-1.27.0.ospx' sh 'cd ./src/ru/OInt && opm build && opm install oint-1.28.0.ospx && rm oint-1.28.0.ospx'
withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) { withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) {
sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg' sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg'
} }

4
ci/cli_test_en vendored
View File

@@ -13,7 +13,7 @@ pipeline {
stages { stages {
stage('Decrypt Data') { stage('Decrypt Data') {
steps { steps {
powershell encoding: 'UTF-8', script:'cd ./src/en/OInt; opm build; opm install oint-1.27.0.ospx; del oint-1.27.0.ospx' powershell encoding: 'UTF-8', script:'cd ./src/en/OInt; opm build; opm install oint-1.28.0.ospx; del oint-1.28.0.ospx'
withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) { withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) {
bat encoding: 'UTF-8', script:'gpg --quiet --batch --yes --decrypt --passphrase="%GPGKEY%" --output ./data.json ./data.json.gpg' bat encoding: 'UTF-8', script:'gpg --quiet --batch --yes --decrypt --passphrase="%GPGKEY%" --output ./data.json ./data.json.gpg'
} }
@@ -80,7 +80,7 @@ pipeline {
stage('Download Installer') { stage('Download Installer') {
steps { steps {
powershell encoding: 'UTF-8', script: ''' powershell encoding: 'UTF-8', script: '''
$url = "https://jenkins.openintegrations.dev/job/OpiBuild/job/OpiRelease/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_installer_en.exe " $url = "https://jenkins.openintegrations.dev/job/OpiBuild/job/OpiRelease/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_installer_en.exe "
$output = "$env:USERPROFILE\\Downloads\\oint_installer.exe" $output = "$env:USERPROFILE\\Downloads\\oint_installer.exe"
Invoke-WebRequest -Uri $url -OutFile $output Invoke-WebRequest -Uri $url -OutFile $output
Write-Host "Инсталлер скачан в: $output" Write-Host "Инсталлер скачан в: $output"

4
ci/cli_test_ru vendored
View File

@@ -13,7 +13,7 @@ pipeline {
stages { stages {
stage('Decrypt Data') { stage('Decrypt Data') {
steps { steps {
powershell encoding: 'UTF-8', script:'cd ./src/ru/OInt; opm build; opm install oint-1.27.0.ospx; del oint-1.27.0.ospx' powershell encoding: 'UTF-8', script:'cd ./src/ru/OInt; opm build; opm install oint-1.28.0.ospx; del oint-1.28.0.ospx'
withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) { withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) {
bat encoding: 'UTF-8', script:'gpg --quiet --batch --yes --decrypt --passphrase="%GPGKEY%" --output ./data.json ./data.json.gpg' bat encoding: 'UTF-8', script:'gpg --quiet --batch --yes --decrypt --passphrase="%GPGKEY%" --output ./data.json ./data.json.gpg'
} }
@@ -80,7 +80,7 @@ pipeline {
stage('Download Installer') { stage('Download Installer') {
steps { steps {
powershell encoding: 'UTF-8', script: ''' powershell encoding: 'UTF-8', script: '''
$url = "https://jenkins.openintegrations.dev/job/OpiBuild/job/OpiRelease/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_installer_ru.exe " $url = "https://jenkins.openintegrations.dev/job/OpiBuild/job/OpiRelease/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_installer_ru.exe "
$output = "$env:USERPROFILE\\Downloads\\oint_installer.exe" $output = "$env:USERPROFILE\\Downloads\\oint_installer.exe"
Invoke-WebRequest -Uri $url -OutFile $output Invoke-WebRequest -Uri $url -OutFile $output
Write-Host "Инсталлер скачан в: $output" Write-Host "Инсталлер скачан в: $output"

4
ci/main vendored
View File

@@ -26,8 +26,8 @@ pipeline {
stage('Local update'){ stage('Local update'){
steps { steps {
powershell encoding: 'UTF-8', script:'cd ./src/ru/OInt; opm build; opm install -f oint-1.27.0.ospx; del oint-1.27.0.ospx' powershell encoding: 'UTF-8', script:'cd ./src/ru/OInt; opm build; opm install -f oint-1.28.0.ospx; del oint-1.28.0.ospx'
powershell encoding: 'UTF-8', script:'cd ./src/ru/cli; opm build; opm install -f oint-cli-1.27.0.ospx; del oint-cli-1.27.0.ospx' powershell encoding: 'UTF-8', script:'cd ./src/ru/cli; opm build; opm install -f oint-cli-1.28.0.ospx; del oint-cli-1.28.0.ospx'
} }
} }

6
ci/opm_push vendored
View File

@@ -7,10 +7,10 @@ pipeline {
steps { steps {
withCredentials([string(credentialsId: 'opm-token', variable: 'TOKEN')]) { withCredentials([string(credentialsId: 'opm-token', variable: 'TOKEN')]) {
powershell encoding: 'UTF-8', script:'cd ./src/ru/OInt; opm build; opm install -f oint-1.27.0.ospx' powershell encoding: 'UTF-8', script:'cd ./src/ru/OInt; opm build; opm install -f oint-1.28.0.ospx'
powershell encoding: 'UTF-8', script:'cd ./src/ru/OInt; opm push --token $ENV:TOKEN --channel stable --file oint-1.27.0.ospx; del oint-1.27.0.ospx' powershell encoding: 'UTF-8', script:'cd ./src/ru/OInt; opm push --token $ENV:TOKEN --channel stable --file oint-1.28.0.ospx; del oint-1.28.0.ospx'
powershell encoding: 'UTF-8', script:'cd ./src/ru/cli; opm build;' powershell encoding: 'UTF-8', script:'cd ./src/ru/cli; opm build;'
powershell encoding: 'UTF-8', script:'cd ./src/ru/cli; opm push --token $ENV:TOKEN --channel stable --file oint-cli-1.27.0.ospx; del oint-cli-1.27.0.ospx' powershell encoding: 'UTF-8', script:'cd ./src/ru/cli; opm push --token $ENV:TOKEN --channel stable --file oint-cli-1.28.0.ospx; del oint-cli-1.28.0.ospx'
} }
} }

4
ci/opm_update vendored
View File

@@ -7,8 +7,8 @@ pipeline {
steps { steps {
powershell encoding: 'UTF-8', script:'cd ./src/ru/OInt; opm build; opm install -f oint-1.27.0.ospx; del oint-1.27.0.ospx' powershell encoding: 'UTF-8', script:'cd ./src/ru/OInt; opm build; opm install -f oint-1.28.0.ospx; del oint-1.28.0.ospx'
powershell encoding: 'UTF-8', script:'cd ./src/ru/cli; opm build; opm install -f oint-cli-1.27.0.ospx; del oint-cli-1.27.0.ospx' powershell encoding: 'UTF-8', script:'cd ./src/ru/cli; opm build; opm install -f oint-cli-1.28.0.ospx; del oint-cli-1.28.0.ospx'
} }

20
ci/os/docs_main.os vendored
View File

@@ -178,7 +178,7 @@
Макет = СтрЗаменить(Макет, "@Описание" , СтруктураМетода["Описание"]); Макет = СтрЗаменить(Макет, "@Описание" , СтруктураМетода["Описание"]);
ТаблицаПараметров = ""; ТаблицаПараметров = "";
Вызов1С = ПолучитьВызов1С(СтруктураМетода["ИмяМодуля"], СтруктураМетода["ИмяМетода"]); Вызов1С = ПолучитьВызов1С(СтруктураМетода["ИмяМодуля"], СтруктураМетода["ИмяМетода"], ТекущийЯзык);
ВызовCLI = ПолучитьВызовCLI(СтруктураМетода); ВызовCLI = ПолучитьВызовCLI(СтруктураМетода);
Для каждого ПараметрМетода Из СтруктураМетода["Параметры"] Цикл Для каждого ПараметрМетода Из СтруктураМетода["Параметры"] Цикл
@@ -570,7 +570,7 @@
КонецПроцедуры КонецПроцедуры
Функция ПолучитьВызов1С(Модуль, Метод) Функция ПолучитьВызов1С(Модуль, Метод, ТекущийЯзык)
Результат = ""; Результат = "";
@@ -594,6 +594,22 @@
Результат = СокрП(Результат); Результат = СокрП(Результат);
Если ЗначениеЗаполнено(Результат) Тогда
Если ТекущийЯзык = "ru" Тогда
ШаблонТекста = "```bsl title=""Пример использования для 1С:Предприятие/OneScript""
|%1
|```";
Иначе
ШаблонТекста = "```bsl title=""1C:Enterprise/OneScript code example""
|%1
|```";
КонецЕсли;
Результат = СтрШаблон(ШаблонТекста, Результат);
КонецЕсли;
Возврат Результат; Возврат Результат;
КонецФункции КонецФункции

View File

@@ -12,7 +12,7 @@
Процедура НачалоРаботы() Процедура НачалоРаботы()
Репозиторий = "https://github.com/Bayselonarrend/OpenIntegrations"; Репозиторий = "https://github.com/Bayselonarrend/OpenIntegrations";
Версия = "1.27.0"; Версия = "1.28.0";
Режим = "CONFIG"; Режим = "CONFIG";
//Локальные данные //Локальные данные

2
ci/os_deb_test_en vendored
View File

@@ -50,7 +50,7 @@ pipeline {
stage('Prepare'){ stage('Prepare'){
steps{ steps{
sh 'cd ./src/en/OInt && opm build && opm install oint-1.27.0.ospx && rm oint-1.27.0.ospx' sh 'cd ./src/en/OInt && opm build && opm install oint-1.28.0.ospx && rm oint-1.28.0.ospx'
withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) { withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) {
sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg' sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg'
} }

2
ci/os_deb_test_ru vendored
View File

@@ -50,7 +50,7 @@ pipeline {
stage('Prepare'){ stage('Prepare'){
steps{ steps{
sh 'cd ./src/ru/OInt && opm build && opm install oint-1.27.0.ospx && rm oint-1.27.0.ospx' sh 'cd ./src/ru/OInt && opm build && opm install oint-1.28.0.ospx && rm oint-1.28.0.ospx'
withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) { withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) {
sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg' sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg'
} }

2
ci/os_rpm_test_en vendored
View File

@@ -50,7 +50,7 @@ pipeline {
stage('Prepare'){ stage('Prepare'){
steps{ steps{
sh 'cd ./src/en/OInt && opm build && opm install oint-1.27.0.ospx && rm oint-1.27.0.ospx' sh 'cd ./src/en/OInt && opm build && opm install oint-1.28.0.ospx && rm oint-1.28.0.ospx'
withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) { withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) {
sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg' sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg'
} }

2
ci/os_rpm_test_ru vendored
View File

@@ -50,7 +50,7 @@ pipeline {
stage('Prepare'){ stage('Prepare'){
steps{ steps{
sh 'cd ./src/ru/OInt && opm build && opm install oint-1.27.0.ospx && rm oint-1.27.0.ospx' sh 'cd ./src/ru/OInt && opm build && opm install oint-1.28.0.ospx && rm oint-1.28.0.ospx'
withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) { withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) {
sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg' sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg'
} }

2
ci/os_test_en vendored
View File

@@ -48,7 +48,7 @@ pipeline {
} }
stage('Build OInt from source and decrypt secret data'){ stage('Build OInt from source and decrypt secret data'){
steps{ steps{
powershell encoding: 'UTF-8', script:'cd ./src/en/OInt; opm build; opm install oint-1.27.0.ospx; del oint-1.27.0.ospx' powershell encoding: 'UTF-8', script:'cd ./src/en/OInt; opm build; opm install oint-1.28.0.ospx; del oint-1.28.0.ospx'
withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) { withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) {
bat encoding: 'UTF-8', script:'gpg --quiet --batch --yes --decrypt --passphrase="%GPGKEY%" --output ./data.json ./data.json.gpg' bat encoding: 'UTF-8', script:'gpg --quiet --batch --yes --decrypt --passphrase="%GPGKEY%" --output ./data.json ./data.json.gpg'
} }

2
ci/os_test_ru vendored
View File

@@ -48,7 +48,7 @@ pipeline {
} }
stage('Build OInt from source and decrypt secret data'){ stage('Build OInt from source and decrypt secret data'){
steps{ steps{
powershell encoding: 'UTF-8', script:'cd ./src/ru/OInt; opm build; opm install oint-1.27.0.ospx; del oint-1.27.0.ospx' powershell encoding: 'UTF-8', script:'cd ./src/ru/OInt; opm build; opm install oint-1.28.0.ospx; del oint-1.28.0.ospx'
withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) { withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) {
bat encoding: 'UTF-8', script:'gpg --quiet --batch --yes --decrypt --passphrase="%GPGKEY%" --output ./data.json ./data.json.gpg' bat encoding: 'UTF-8', script:'gpg --quiet --batch --yes --decrypt --passphrase="%GPGKEY%" --output ./data.json ./data.json.gpg'
} }

2
ci/release vendored
View File

@@ -8,7 +8,7 @@ pipeline {
steps { steps {
powershell encoding: 'UTF-8', script:'Remove-Item -Path "./Melezh" -Recurse -Force' powershell encoding: 'UTF-8', script:'Remove-Item -Path "./Melezh" -Recurse -Force'
bat 'oscript ./ci/os/releasemaker.os' bat 'oscript ./ci/os/releasemaker.os'
archiveArtifacts artifacts: '1.27.0/*' archiveArtifacts artifacts: '1.28.0/*'
} }
} }
} }

2
service/iss/en.iss vendored
View File

@@ -1,5 +1,5 @@
#define MyAppName "OInt" #define MyAppName "OInt"
#define MyAppVersion "1.27.0" #define MyAppVersion "1.28.0"
#define MyAppPublisher "bayselonarrend" #define MyAppPublisher "bayselonarrend"
#define MyAppURL "https://github.com/Bayselonarrend/OpenIntegrations" #define MyAppURL "https://github.com/Bayselonarrend/OpenIntegrations"
#define MyAppExeName "oint.bat" #define MyAppExeName "oint.bat"

2
service/iss/ru.iss vendored
View File

@@ -1,5 +1,5 @@
#define MyAppName "OInt" #define MyAppName "OInt"
#define MyAppVersion "1.27.0" #define MyAppVersion "1.28.0"
#define MyAppPublisher "bayselonarrend" #define MyAppPublisher "bayselonarrend"
#define MyAppURL "https://github.com/Bayselonarrend/OpenIntegrations" #define MyAppURL "https://github.com/Bayselonarrend/OpenIntegrations"
#define MyAppExeName "oint.bat" #define MyAppExeName "oint.bat"

View File

@@ -1,5 +1,5 @@
{ {
"version": "1.27.0", "version": "1.28.0",
"root": "./src/", "root": "./src/",
"mainLang": "ru", "mainLang": "ru",
"packageSrc": "OInt/", "packageSrc": "OInt/",

View File

@@ -24,10 +24,7 @@ import TabItem from '@theme/TabItem';
@Примечание @Примечание
```bsl title="1C:Enterprise/OneScript code example"
@Вызов1С @Вызов1С
```
@ВызовCLI @ВызовCLI

View File

@@ -24,10 +24,7 @@ import TabItem from '@theme/TabItem';
@Примечание @Примечание
```bsl title="Пример использования для 1С:Предприятие/OneScript"
@Вызов1С @Вызов1С
```
@ВызовCLI @ВызовCLI

View File

@@ -25,7 +25,7 @@ pipeline {
steps { steps {
script { script {
// Скачиваем новый deb-пакет oint // Скачиваем новый deb-пакет oint
sh 'wget -O oint_1.27.0_all_%1.deb https://jenkins.openintegrations.dev/job/OpiBuild/job/OpiRelease/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_all_%1.deb ' sh 'wget -O oint_1.28.0_all_%1.deb https://jenkins.openintegrations.dev/job/OpiBuild/job/OpiRelease/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_all_%1.deb '
} }
} }
} }
@@ -34,14 +34,14 @@ pipeline {
steps { steps {
script { script {
// Устанавливаем скаченный пакет // Устанавливаем скаченный пакет
sh 'dpkg -i oint_1.27.0_all_%1.deb' sh 'dpkg -i oint_1.28.0_all_%1.deb'
} }
} }
} }
stage('Prepare'){ stage('Prepare'){
steps{ steps{
sh 'cd ./src/%1/OInt && opm build && opm install oint-1.27.0.ospx && rm oint-1.27.0.ospx' sh 'cd ./src/%1/OInt && opm build && opm install oint-1.28.0.ospx && rm oint-1.28.0.ospx'
withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) { withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) {
sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg' sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg'
} }

View File

@@ -24,7 +24,7 @@ pipeline {
steps { steps {
script { script {
// Скачиваем новый rpm-пакет oint // Скачиваем новый rpm-пакет oint
sh 'wget -O oint-1.27.0-1.noarch_%1.rpm https://jenkins.openintegrations.dev/job/OpiBuild/job/OpiRelease/lastSuccessfulBuild/artifact/1.27.0/oint-1.27.0-1.noarch_%1.rpm ' sh 'wget -O oint-1.28.0-1.noarch_%1.rpm https://jenkins.openintegrations.dev/job/OpiBuild/job/OpiRelease/lastSuccessfulBuild/artifact/1.28.0/oint-1.28.0-1.noarch_%1.rpm '
} }
} }
} }
@@ -33,14 +33,14 @@ pipeline {
steps { steps {
script { script {
// Устанавливаем скаченный пакет // Устанавливаем скаченный пакет
sh 'rpm -ivh --replacepkgs oint-1.27.0-1.noarch_%1.rpm' sh 'rpm -ivh --replacepkgs oint-1.28.0-1.noarch_%1.rpm'
} }
} }
} }
stage('Prepare'){ stage('Prepare'){
steps{ steps{
sh 'cd ./src/%1/OInt && opm build && opm install oint-1.27.0.ospx && rm oint-1.27.0.ospx' sh 'cd ./src/%1/OInt && opm build && opm install oint-1.28.0.ospx && rm oint-1.28.0.ospx'
withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) { withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) {
sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg' sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg'
} }

View File

@@ -13,7 +13,7 @@ pipeline {
stages { stages {
stage('Decrypt Data') { stage('Decrypt Data') {
steps { steps {
powershell encoding: 'UTF-8', script:'cd ./src/%1/OInt; opm build; opm install oint-1.27.0.ospx; del oint-1.27.0.ospx' powershell encoding: 'UTF-8', script:'cd ./src/%1/OInt; opm build; opm install oint-1.28.0.ospx; del oint-1.28.0.ospx'
withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) { withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) {
bat encoding: 'UTF-8', script:'gpg --quiet --batch --yes --decrypt --passphrase="%%GPGKEY%%" --output ./data.json ./data.json.gpg' bat encoding: 'UTF-8', script:'gpg --quiet --batch --yes --decrypt --passphrase="%%GPGKEY%%" --output ./data.json ./data.json.gpg'
} }
@@ -80,7 +80,7 @@ pipeline {
stage('Download Installer') { stage('Download Installer') {
steps { steps {
powershell encoding: 'UTF-8', script: ''' powershell encoding: 'UTF-8', script: '''
$url = "https://jenkins.openintegrations.dev/job/OpiBuild/job/OpiRelease/lastSuccessfulBuild/artifact/1.27.0/oint_1.27.0_installer_%1.exe " $url = "https://jenkins.openintegrations.dev/job/OpiBuild/job/OpiRelease/lastSuccessfulBuild/artifact/1.28.0/oint_1.28.0_installer_%1.exe "
$output = "$env:USERPROFILE\\Downloads\\oint_installer.exe" $output = "$env:USERPROFILE\\Downloads\\oint_installer.exe"
Invoke-WebRequest -Uri $url -OutFile $output Invoke-WebRequest -Uri $url -OutFile $output
Write-Host "Инсталлер скачан в: $output" Write-Host "Инсталлер скачан в: $output"

View File

@@ -50,7 +50,7 @@ pipeline {
stage('Prepare'){ stage('Prepare'){
steps{ steps{
sh 'cd ./src/%1/OInt && opm build && opm install oint-1.27.0.ospx && rm oint-1.27.0.ospx' sh 'cd ./src/%1/OInt && opm build && opm install oint-1.28.0.ospx && rm oint-1.28.0.ospx'
withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) { withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) {
sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg' sh 'gpg --quiet --batch --yes --decrypt --passphrase="$GPGKEY" --output ./data.json ./data.json.gpg'
} }

View File

@@ -48,7 +48,7 @@ pipeline {
} }
stage('Build OInt from source and decrypt secret data'){ stage('Build OInt from source and decrypt secret data'){
steps{ steps{
powershell encoding: 'UTF-8', script:'cd ./src/%1/OInt; opm build; opm install oint-1.27.0.ospx; del oint-1.27.0.ospx' powershell encoding: 'UTF-8', script:'cd ./src/%1/OInt; opm build; opm install oint-1.28.0.ospx; del oint-1.28.0.ospx'
withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) { withCredentials([string(credentialsId: 'gpgkey', variable: 'GPGKEY')]) {
bat encoding: 'UTF-8', script:'gpg --quiet --batch --yes --decrypt --passphrase="%%GPGKEY%%" --output ./data.json ./data.json.gpg' bat encoding: 'UTF-8', script:'gpg --quiet --batch --yes --decrypt --passphrase="%%GPGKEY%%" --output ./data.json ./data.json.gpg'
} }

351
src/addins/ssh/Cargo.lock generated Normal file
View File

@@ -0,0 +1,351 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 4
[[package]]
name = "addin1c"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef34e8b7ff4c43e87491a4cc30a4779a9f67c50db43378a36362c7a56246e05b"
dependencies = [
"smallvec",
"utf16_lit",
]
[[package]]
name = "autocfg"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
[[package]]
name = "bitflags"
version = "2.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394"
[[package]]
name = "cc"
version = "1.2.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "65193589c6404eb80b450d618eaf9a2cafaaafd57ecce47370519ef674a7bd44"
dependencies = [
"find-msvc-tools",
"shlex",
]
[[package]]
name = "cfg-if"
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9"
[[package]]
name = "find-msvc-tools"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d"
[[package]]
name = "itoa"
version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
[[package]]
name = "libc"
version = "0.2.175"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543"
[[package]]
name = "libssh2-sys"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "220e4f05ad4a218192533b300327f5150e809b54c4ec83b5a1d91833601811b9"
dependencies = [
"cc",
"libc",
"libz-sys",
"openssl-sys",
"pkg-config",
"vcpkg",
]
[[package]]
name = "libz-sys"
version = "1.1.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d"
dependencies = [
"cc",
"libc",
"pkg-config",
"vcpkg",
]
[[package]]
name = "lock_api"
version = "0.4.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765"
dependencies = [
"autocfg",
"scopeguard",
]
[[package]]
name = "memchr"
version = "2.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0"
[[package]]
name = "openssl-sys"
version = "0.9.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571"
dependencies = [
"cc",
"libc",
"pkg-config",
"vcpkg",
]
[[package]]
name = "opi_ssh"
version = "0.1.0"
dependencies = [
"addin1c",
"serde",
"serde_json",
"ssh2",
]
[[package]]
name = "parking_lot"
version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13"
dependencies = [
"lock_api",
"parking_lot_core",
]
[[package]]
name = "parking_lot_core"
version = "0.9.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5"
dependencies = [
"cfg-if",
"libc",
"redox_syscall",
"smallvec",
"windows-targets",
]
[[package]]
name = "pkg-config"
version = "0.3.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
[[package]]
name = "proc-macro2"
version = "1.0.101"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d"
dependencies = [
"proc-macro2",
]
[[package]]
name = "redox_syscall"
version = "0.5.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77"
dependencies = [
"bitflags",
]
[[package]]
name = "ryu"
version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
[[package]]
name = "scopeguard"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
[[package]]
name = "serde"
version = "1.0.225"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd6c24dee235d0da097043389623fb913daddf92c76e9f5a1db88607a0bcbd1d"
dependencies = [
"serde_core",
"serde_derive",
]
[[package]]
name = "serde_core"
version = "1.0.225"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "659356f9a0cb1e529b24c01e43ad2bdf520ec4ceaf83047b83ddcc2251f96383"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.225"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ea936adf78b1f766949a4977b91d2f5595825bd6ec079aa9543ad2685fc4516"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "serde_json"
version = "1.0.145"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
dependencies = [
"itoa",
"memchr",
"ryu",
"serde",
"serde_core",
]
[[package]]
name = "shlex"
version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
[[package]]
name = "smallvec"
version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
[[package]]
name = "ssh2"
version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2f84d13b3b8a0d4e91a2629911e951db1bb8671512f5c09d7d4ba34500ba68c8"
dependencies = [
"bitflags",
"libc",
"libssh2-sys",
"parking_lot",
]
[[package]]
name = "syn"
version = "2.0.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "unicode-ident"
version = "1.0.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d"
[[package]]
name = "utf16_lit"
version = "2.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14706d2a800ee8ff38c1d3edb873cd616971ea59eb7c0d046bb44ef59b06a1ae"
[[package]]
name = "vcpkg"
version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
[[package]]
name = "windows-targets"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
dependencies = [
"windows_aarch64_gnullvm",
"windows_aarch64_msvc",
"windows_i686_gnu",
"windows_i686_gnullvm",
"windows_i686_msvc",
"windows_x86_64_gnu",
"windows_x86_64_gnullvm",
"windows_x86_64_msvc",
]
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
[[package]]
name = "windows_aarch64_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
[[package]]
name = "windows_i686_gnu"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
[[package]]
name = "windows_i686_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
[[package]]
name = "windows_i686_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
[[package]]
name = "windows_x86_64_gnu"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
[[package]]
name = "windows_x86_64_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"

20
src/addins/ssh/Cargo.toml Normal file
View File

@@ -0,0 +1,20 @@
[package]
name = "opi_ssh"
version = "0.1.0"
edition = "2021"
[lib]
crate-type = ["cdylib"]
[profile.release]
lto = "fat" # Enable Link Time Optimization
codegen-units = 1 # Reduce number of codegen units to increase optimizations.
panic = "abort" # Abort on panic
strip = true # Automatically strip symbols from the binary.
opt-level = "z"
[dependencies]
addin1c = "0.5.0"
serde_json = "1.0.140"
ssh2 = "0.9.5"
serde = { version = "1.0.219", features = ["derive"] }

View File

@@ -0,0 +1,12 @@
"MAIN ---"
linux-vdso.so.1 (0x00007ffedc1ce000)
libm.so.6 => /lib64/libm.so.6 (0x0000700082000000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000700081c00000)
libc.so.6 => /lib64/libc.so.6 (0x0000700081800000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000700081400000)
/lib64/ld-linux-x86-64.so.2 (0x0000700082400000)
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.3.4
GLIBC_2.14
GLIBC_2.17

8
src/addins/ssh/release.bat vendored Normal file
View File

@@ -0,0 +1,8 @@
@echo off
:: Установить переменную
set CARGO_NAME=opi_ssh
set LIB_NAME=OPI_SSH
set ADDIN_DIR=%~dp0
call ../build.bat

View File

View File

@@ -0,0 +1,139 @@
mod methods;
mod ssh_conf;
use addin1c::{name, Variant};
use serde_json::json;
use crate::core::getset;
use ssh2::Session;
use std::net::TcpStream;
use crate::component::ssh_conf::{SshConf, SshAuthTypes};
// МЕТОДЫ КОМПОНЕНТЫ -------------------------------------------------------------------------------
// Синонимы
pub const METHODS: &[&[u16]] = &[
name!("Connect"),
];
// Число параметров функций компоненты
pub fn get_params_amount(num: usize) -> usize {
match num {
0 => 1,
_ => 0,
}
}
// Соответствие функций Rust функциям компоненты
// Вызовы должны быть обернуты в Box::new
pub fn cal_func(obj: &mut AddIn, num: usize, params: &mut [Variant]) -> Box<dyn getset::ValueType> {
match num {
0 => {
let json_string = params[0].get_string().unwrap_or("".to_string());
Box::new(obj.initialize(json_string))
},
_ => Box::new(false), // Неверный номер команды
}
}
// -------------------------------------------------------------------------------------------------
// ПОЛЯ КОМПОНЕНТЫ ---------------------------------------------------------------------------------
// Синонимы
pub const PROPS: &[&[u16]] = &[];
pub struct AddIn {
inner: Option<Session>,
credentials: Option<SshConf>
}
impl AddIn {
/// Создает новый объект
pub fn new() -> Self {
AddIn {
inner: None,
credentials: None,
}
}
pub fn initialize(&mut self, conf: String) -> String {
let conf_data = match SshConf::from_sting(conf.as_str()){
Ok(conf_data) => conf_data,
Err(e) => return format_json_error(&e)
};
self.credentials = Some(conf_data.clone());
let tcp = match TcpStream::connect(format!("{}:{}", conf_data.host, conf_data.port)){
Ok(tcp) => tcp,
Err(e) => return format_json_error(&e.to_string())
};
let mut sess = match Session::new(){
Ok(sess) => sess,
Err(e) => return format_json_error(&e.to_string())
};
sess.set_tcp_stream(tcp);
if let Err(e) = sess.handshake() {
return e.to_string();
};
let username= &conf_data.username;
let password = &conf_data.password.unwrap_or("".to_string());
let passphrase = conf_data.passphrase;
let key_path = &conf_data.key_path;
let auth_success = match conf_data.auth_type {
SshAuthTypes::Password => sess.userauth_password(username,password),
SshAuthTypes::Agent => sess.userauth_agent(username),
SshAuthTypes::PrivateKey => {
let path = match key_path{
Some(key_path) => key_path.as_ref(),
None => return format_json_error("No key path provided with PK auth type")
};
sess.userauth_pubkey_file(username, None, path, passphrase.as_deref())
},
};
if let Err(e) = auth_success{
return format_json_error(&e.to_string());
};
if !sess.authenticated(){
return format_json_error("Authentication failed with no errors");
}
self.inner = Some(sess);
json!({"result": true}).to_string()
}
pub fn get_field_ptr(&self, index: usize) -> *const dyn getset::ValueType {
match index {
_ => panic!("Index out of bounds"),
}
}
pub fn get_field_ptr_mut(&mut self, index: usize) -> *mut dyn getset::ValueType { self.get_field_ptr(index) as *mut _ }
}
// -------------------------------------------------------------------------------------------------
pub fn format_json_error(error: &str) -> String {
json!({"result": false, "error": error}).to_string()
}
// УНИЧТОЖЕНИЕ ОБЪЕКТА -----------------------------------------------------------------------------
// Обработка удаления объекта
impl Drop for AddIn {
fn drop(&mut self) {}
}

View File

@@ -0,0 +1,35 @@
use std::path::PathBuf;
use serde_json::{json, Value};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum SshAuthTypes{
#[serde(rename = "password")]
Password,
#[serde(rename = "private_key")]
PrivateKey,
#[serde(rename = "agent")]
Agent
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SshConf{
pub host: String,
pub port: i64,
pub auth_type: SshAuthTypes,
pub username: String,
pub password: Option<String>,
pub key_path: Option<String>,
pub passphrase: Option<String>,
}
impl SshConf {
pub fn from_sting(conf: &str) -> Result<SshConf, String> {
serde_json::from_str(conf).unwrap_or_else(|e| Err(e.to_string()))
}
pub fn to_string(&self) -> String {
json!({"result": true, "data": &self}).to_string()
}
}

View File

@@ -0,0 +1,78 @@
use addin1c::{Variant, Tm};
pub trait ValueType {
fn get_value(&self, val: &mut Variant) -> bool;
fn set_value(&mut self, val: &Variant);
}
// Реализация для i32
impl ValueType for i32 {
fn get_value(&self, val: &mut Variant) -> bool {
val.set_i32(*self);
true
}
fn set_value(&mut self, val: &Variant) {
*self = val.get_i32().unwrap_or(0);
}
}
// Реализация для f64
impl ValueType for f64 {
fn get_value(&self, val: &mut Variant) -> bool {
val.set_f64(*self);
true
}
fn set_value(&mut self, val: &Variant) {
*self = val.get_f64().unwrap_or(0.0);
}
}
// Реализация для bool
impl ValueType for bool {
fn get_value(&self, val: &mut Variant) -> bool {
val.set_bool(*self);
true
}
fn set_value(&mut self, val: &Variant) {
*self = val.get_bool().unwrap_or(false);
}
}
// Реализация для tm
impl ValueType for Tm {
fn get_value(&self, val: &mut Variant) -> bool {
val.set_date(*self);
true
}
fn set_value(&mut self, val: &Variant) {
*self = val.get_date().unwrap_or(Tm::default());
}
}
// Реализация для String
impl ValueType for String {
fn get_value(&self, val: &mut Variant) -> bool {
let s: Vec<u16> = self.encode_utf16().collect();
val.set_str1c(s.as_slice()).is_ok()
}
fn set_value(&mut self, val: &Variant) {
*self = val.get_string().unwrap_or("".to_string());
}
}
// Реализация для Vec<u8>
impl ValueType for Vec<u8> {
fn get_value(&self, val: &mut Variant) -> bool {
val.set_blob(self.as_slice()).is_ok()
}
fn set_value(&mut self, val: &Variant) {
*self = val.get_blob().unwrap_or(&[]).to_vec()
}
}

View File

@@ -0,0 +1,53 @@
pub mod getset;
use addin1c::{name, RawAddin, Variant};
use crate::component::METHODS;
use crate::component::PROPS;
use crate::component::get_params_amount;
use crate::component::cal_func;
use crate::component::AddIn;
// Определение класса
impl RawAddin for AddIn {
fn register_extension_as(&mut self) -> &'static [u16] {
name!("Main")
}
fn get_n_props(&mut self) -> usize {
PROPS.len()
}
fn find_prop(&mut self, name: &[u16]) -> Option<usize> {
PROPS.iter().position(|&x| x == name)
}
fn get_prop_name(&mut self, num: usize, _alias: usize) -> Option<&'static [u16]> { PROPS.get(num).copied() }
fn get_prop_val(&mut self, num: usize, val: &mut Variant) -> bool {let field: &dyn getset::ValueType = &self[num]; field.get_value(val) }
fn set_prop_val(&mut self, num: usize, val: &Variant) -> bool {let field: &mut dyn getset::ValueType = &mut self[num]; field.set_value(val); true }
fn is_prop_readable(&mut self, _num: usize) -> bool { true }
fn is_prop_writable(&mut self, _num: usize) -> bool { true }
fn get_n_methods(&mut self) -> usize { METHODS.len() }
fn find_method(&mut self, name: &[u16]) -> Option<usize> { METHODS.iter().position(|&x| x == name) }
fn get_method_name(&mut self, num: usize, _alias: usize) -> Option<&'static [u16]> { METHODS.get(num).copied() }
fn get_n_params(&mut self, num: usize) -> usize { get_params_amount(num) }
fn get_param_def_value(&mut self, _method_num: usize, _param_num: usize, _value: Variant, ) -> bool { true }
fn has_ret_val(&mut self, _num: usize) -> bool { true }
fn call_as_proc(&mut self, _num: usize, _params: &mut [Variant]) -> bool { false }
fn call_as_func(&mut self, num: usize, params: &mut [Variant], ret_value: &mut Variant, ) -> bool { cal_func(self, num, params).get_value(ret_value) }
}
impl std::ops::Index<usize> for AddIn {
type Output = dyn getset::ValueType;
fn index(&self, index: usize) -> &Self::Output {
unsafe { &*self.get_field_ptr(index) }
}
}
impl std::ops::IndexMut<usize> for AddIn {
fn index_mut(&mut self, index: usize) -> &mut Self::Output {
unsafe { &mut *self.get_field_ptr_mut(index) }
}
}

49
src/addins/ssh/src/lib.rs Normal file
View File

@@ -0,0 +1,49 @@
pub mod component;
mod core;
use std::{
ffi::{c_int, c_long, c_void},
sync::atomic::{AtomicI32, Ordering},
};
use component::AddIn;
use addin1c::{create_component, destroy_component, name, AttachType};
pub static mut PLATFORM_CAPABILITIES: AtomicI32 = AtomicI32::new(-1);
#[allow(non_snake_case)]
#[no_mangle]
pub unsafe extern "C" fn GetClassObject(_name: *const u16, component: *mut *mut c_void) -> c_long {
let addin = AddIn::new();
create_component(component, addin)
}
#[allow(non_snake_case)]
#[no_mangle]
pub unsafe extern "C" fn DestroyObject(component: *mut *mut c_void) -> c_long {
destroy_component(component)
}
#[allow(non_snake_case)]
#[no_mangle]
pub extern "C" fn GetClassNames() -> *const u16 {
// small strings for performance
name!("Main").as_ptr()
}
#[allow(non_snake_case)]
#[no_mangle]
#[allow(static_mut_refs)]
pub unsafe extern "C" fn SetPlatformCapabilities(capabilities: c_int) -> c_int {
PLATFORM_CAPABILITIES.store(capabilities, Ordering::Relaxed);
3
}
#[allow(non_snake_case)]
#[no_mangle]
pub extern "C" fn GetAttachType() -> AttachType {
AttachType::Any
}

View File

@@ -13,10 +13,89 @@ dependencies = [
] ]
[[package]] [[package]]
name = "opi_addin" name = "itoa"
version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
[[package]]
name = "memchr"
version = "2.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0"
[[package]]
name = "opi_ssh"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"addin1c", "addin1c",
"serde_json",
]
[[package]]
name = "proc-macro2"
version = "1.0.101"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d"
dependencies = [
"proc-macro2",
]
[[package]]
name = "ryu"
version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
[[package]]
name = "serde"
version = "1.0.225"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd6c24dee235d0da097043389623fb913daddf92c76e9f5a1db88607a0bcbd1d"
dependencies = [
"serde_core",
]
[[package]]
name = "serde_core"
version = "1.0.225"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "659356f9a0cb1e529b24c01e43ad2bdf520ec4ceaf83047b83ddcc2251f96383"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.225"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ea936adf78b1f766949a4977b91d2f5595825bd6ec079aa9543ad2685fc4516"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "serde_json"
version = "1.0.145"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
dependencies = [
"itoa",
"memchr",
"ryu",
"serde",
"serde_core",
] ]
[[package]] [[package]]
@@ -25,6 +104,23 @@ version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
[[package]]
name = "syn"
version = "2.0.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "unicode-ident"
version = "1.0.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d"
[[package]] [[package]]
name = "utf16_lit" name = "utf16_lit"
version = "2.0.2" version = "2.0.2"

View File

@@ -1,5 +1,5 @@
[package] [package]
name = "opi_addin" name = "opi_ssh"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition = "2021"
@@ -7,10 +7,12 @@ edition = "2021"
crate-type = ["cdylib"] crate-type = ["cdylib"]
[profile.release] [profile.release]
lto = true # Enable Link Time Optimization lto = "fat" # Enable Link Time Optimization
codegen-units = 1 # Reduce number of codegen units to increase optimizations. codegen-units = 1 # Reduce number of codegen units to increase optimizations.
panic = "abort" # Abort on panic panic = "abort" # Abort on panic
strip = true # Automatically strip symbols from the binary. strip = true # Automatically strip symbols from the binary.
opt-level = "z"
[dependencies] [dependencies]
addin1c = "0.5.0" addin1c = "0.5.0"
serde_json = "1.0.140"

View File

@@ -1,7 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<bundle xmlns='http://v8.1c.ru/8.2/addin/bundle' name='OPIADDIN'>
<component os='Windows' path='AddIn_x86_windows.dll' type='native' arch='i386' />
<component os='Windows' path='AddIn_x64_windows.dll' type='native' arch='x86_64' />
<component os='Linux' path='AddIn_x86_linux.so' type='native' arch='i386' />
<component os='Linux' path='AddIn_x64_linux.so' type='native' arch='x86_64' />
</bundle>

View File

@@ -0,0 +1,12 @@
"MAIN ---"
linux-vdso.so.1 (0x00007ffedc1ce000)
libm.so.6 => /lib64/libm.so.6 (0x0000700082000000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000700081c00000)
libc.so.6 => /lib64/libc.so.6 (0x0000700081800000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000700081400000)
/lib64/ld-linux-x86-64.so.2 (0x0000700082400000)
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.3.4
GLIBC_2.14
GLIBC_2.17

View File

@@ -1,69 +1,8 @@
@echo off @echo off
:: Установить переменную :: Установить переменную
set CARGO_NAME=opi_addin set CARGO_NAME=opi_ssh
set LIB_NAME=OPI_AddIn set LIB_NAME=OPI_SSH
set OPENSSL_DIR=C:\msys64\mingw64 set ADDIN_DIR=%~dp0
set OPENSSL_LIB_DIR=%OPENSSL_DIR%\lib
set OPENSSL_INCLUDE_DIR=%OPENSSL_DIR%\include
call ../build.bat
:: Перейти в директорию проекта
cd /d "%~dp0"
:: Создать папку для артефактов
set OUTPUT_DIR=artifacts
if not exist "%OUTPUT_DIR%" mkdir "%OUTPUT_DIR%"
:: Сборка для x86_64-pc-windows-msvc
cargo build --release --target x86_64-pc-windows-msvc
if errorlevel 1 goto :error
:: Сборка для x86_64-unknown-linux-gnu
cargo zigbuild --release --target x86_64-unknown-linux-gnu
if errorlevel 1 goto :error
:: Сборка для i686-pc-windows-msvc
cargo build --release --target i686-pc-windows-msvc
if errorlevel 1 goto :error
:: Сборка для i686-unknown-linux-gnu
cargo zigbuild --release --target i686-unknown-linux-gnu
if errorlevel 1 goto :error
:: Копирование файлов .dll и .so
copy /y target\x86_64-pc-windows-msvc\release\%CARGO_NAME%.dll "%OUTPUT_DIR%\AddIn_x64_windows.dll"
if errorlevel 1 goto :error
copy /y target\i686-pc-windows-msvc\release\%CARGO_NAME%.dll "%OUTPUT_DIR%\AddIn_x86_windows.dll"
if errorlevel 1 goto :error
copy /y target\x86_64-unknown-linux-gnu\release\lib%CARGO_NAME%.so "%OUTPUT_DIR%\AddIn_x64_linux.so"
if errorlevel 1 goto :error
copy /y target\i686-unknown-linux-gnu\release\lib%CARGO_NAME%.so "%OUTPUT_DIR%\AddIn_x86_linux.so"
if errorlevel 1 goto :error
copy /y MANIFEST.XML "%OUTPUT_DIR%\MANIFEST.XML"
if errorlevel 1 goto :error
:: Архивация
powershell -Command "Compress-Archive -Path '%OUTPUT_DIR%\*' -Force -DestinationPath '%LIB_NAME%.zip'"
if errorlevel 1 goto :error
copy /y "%LIB_NAME%.zip" "../../ru/OInt/addins/%LIB_NAME%.zip"
copy /y "%LIB_NAME%.zip" "../../en/OInt/addins/%LIB_NAME%.zip"
copy /y "%LIB_NAME%.zip" "../../ru/OPI/src/CommonTemplates/%LIB_NAME%/Template.addin"
copy /y "%LIB_NAME%.zip" "../../en/OPI/src/CommonTemplates/%LIB_NAME%/Template.addin"
if exist "%OUTPUT_DIR%" (
rmdir /S /Q "%OUTPUT_DIR%"
)
@echo Build and packaging completed successfully.
exit /b 0
:error
@echo An error occurred during the build or packaging process.
exit /b 1

View File

@@ -1,4 +0,0 @@
pub fn method1() -> bool {
true
}

View File

@@ -1,13 +1,13 @@
mod methods; mod methods;
use addin1c::{name, Variant}; use addin1c::{name, Variant};
use serde_json::json;
use crate::core::getset; use crate::core::getset;
// МЕТОДЫ КОМПОНЕНТЫ ------------------------------------------------------------------------------- // МЕТОДЫ КОМПОНЕНТЫ -------------------------------------------------------------------------------
// Синонимы // Синонимы
pub const METHODS: &[&[u16]] = &[ pub const METHODS: &[&[u16]] = &[
name!("Method1"), // 0 name!("Connect"),
]; ];
@@ -25,7 +25,8 @@ pub fn cal_func(obj: &mut AddIn, num: usize, params: &mut [Variant]) -> Box<dyn
match num { match num {
0 => Box::new(methods::method1()), 0 => Box::new(obj.initialize()),
_ => Box::new(false), // Неверный номер команды _ => Box::new(false), // Неверный номер команды
} }
@@ -37,24 +38,25 @@ pub fn cal_func(obj: &mut AddIn, num: usize, params: &mut [Variant]) -> Box<dyn
// Синонимы // Синонимы
pub const PROPS: &[&[u16]] = &[ pub const PROPS: &[&[u16]] = &[
name!("Prop1") name!("Database")
]; ];
pub struct AddIn { pub struct AddIn {
pub prop1: String, field: String
} }
impl AddIn { impl AddIn {
/// Создает новый объект /// Создает новый объект
pub fn new() -> Self { pub fn new() -> Self {
AddIn { AddIn {
prop1: String::new() field: String::new()
} }
} }
pub fn get_field_ptr(&self, index: usize) -> *const dyn getset::ValueType { pub fn get_field_ptr(&self, index: usize) -> *const dyn getset::ValueType {
match index { match index {
0 => &self.prop1 as &dyn getset::ValueType as *const _, 0 => &self.field as &dyn getset::ValueType as *const _,
_ => panic!("Index out of bounds"), _ => panic!("Index out of bounds"),
} }
} }
@@ -62,6 +64,11 @@ impl AddIn {
} }
// ------------------------------------------------------------------------------------------------- // -------------------------------------------------------------------------------------------------
pub fn format_json_error(error: &str) -> String {
json!({"result": false, "error": error}).to_string()
}
// УНИЧТОЖЕНИЕ ОБЪЕКТА ----------------------------------------------------------------------------- // УНИЧТОЖЕНИЕ ОБЪЕКТА -----------------------------------------------------------------------------
// Обработка удаления объекта // Обработка удаления объекта

View File

@@ -8,7 +8,6 @@ use crate::component::get_params_amount;
use crate::component::cal_func; use crate::component::cal_func;
use crate::component::AddIn; use crate::component::AddIn;
// Определение класса // Определение класса
impl RawAddin for AddIn { impl RawAddin for AddIn {

View File

@@ -30,12 +30,13 @@ pub unsafe extern "C" fn DestroyObject(component: *mut *mut c_void) -> c_long {
#[allow(non_snake_case)] #[allow(non_snake_case)]
#[no_mangle] #[no_mangle]
pub extern "C" fn GetClassNames() -> *const u16 { pub extern "C" fn GetClassNames() -> *const u16 {
// small strings for performance
name!("Main").as_ptr() name!("Main").as_ptr()
} }
#[allow(non_snake_case)] #[allow(non_snake_case)]
#[allow(static_mut_refs)]
#[no_mangle] #[no_mangle]
#[allow(static_mut_refs)]
pub unsafe extern "C" fn SetPlatformCapabilities(capabilities: c_int) -> c_int { pub unsafe extern "C" fn SetPlatformCapabilities(capabilities: c_int) -> c_int {
PLATFORM_CAPABILITIES.store(capabilities, Ordering::Relaxed); PLATFORM_CAPABILITIES.store(capabilities, Ordering::Relaxed);
3 3

View File

@@ -1,5 +1,5 @@
Описание.Имя("oint") Описание.Имя("oint")
.Версия("1.27.0") .Версия("1.28.0")
.Автор("bayselonarrend") .Автор("bayselonarrend")
.АдресАвтора("bayselonarrend@gmail.com") .АдресАвтора("bayselonarrend@gmail.com")
.Описание("Открытый пакет интеграций с популярными API") .Описание("Открытый пакет интеграций с популярными API")

View File

@@ -1019,7 +1019,7 @@ Function ThisIsCollection(Val Value, Val KeyValue = False) Export
EndFunction EndFunction
Function OPIVersion() Export Function OPIVersion() Export
Return "1.27.0"; Return "1.28.0";
EndFunction EndFunction
Function OPILanguage() Export Function OPILanguage() Export

View File

@@ -1019,7 +1019,7 @@ Function ThisIsCollection(Val Value, Val KeyValue = False) Export
EndFunction EndFunction
Function OPIVersion() Export Function OPIVersion() Export
Return "1.27.0"; Return "1.28.0";
EndFunction EndFunction
Function OPILanguage() Export Function OPILanguage() Export

View File

@@ -25,7 +25,7 @@
<usePurposes>PersonalComputer</usePurposes> <usePurposes>PersonalComputer</usePurposes>
<scriptVariant>English</scriptVariant> <scriptVariant>English</scriptVariant>
<vendor>Bayselonarrend</vendor> <vendor>Bayselonarrend</vendor>
<version>1.27.0</version> <version>1.28.0</version>
<detailedInformation> <detailedInformation>
<key>en</key> <key>en</key>
<value>The Open Integration Package is a set of libraries for integrating with some popular APIs for 1C:Enterprise. It consists of common modules, each responsible for its own API, as well as several shared tool modules..</value> <value>The Open Integration Package is a set of libraries for integrating with some popular APIs for 1C:Enterprise. It consists of common modules, each responsible for its own API, as well as several shared tool modules..</value>

View File

@@ -9,7 +9,7 @@ Var PackagesDirectory;
Procedure OnObjectCreate() Procedure OnObjectCreate()
Version = "1.27.0"; Version = "1.28.0";
InitializeCommonLists(); InitializeCommonLists();
CurrentDirectory = CurrentScript().Path; CurrentDirectory = CurrentScript().Path;

View File

@@ -1,5 +1,5 @@
Описание.Имя("oint-cli") Описание.Имя("oint-cli")
.Версия("1.27.0") .Версия("1.28.0")
.Автор("bayselonarrend") .Автор("bayselonarrend")
.АдресАвтора("bayselonarrend@gmail.com") .АдресАвтора("bayselonarrend@gmail.com")
.Описание("OpenIntegrations-based CLI tool") .Описание("OpenIntegrations-based CLI tool")

View File

@@ -1,5 +1,5 @@
Описание.Имя("oint") Описание.Имя("oint")
.Версия("1.27.0") .Версия("1.28.0")
.Автор("bayselonarrend") .Автор("bayselonarrend")
.АдресАвтора("bayselonarrend@gmail.com") .АдресАвтора("bayselonarrend@gmail.com")
.Описание("Открытый пакет интеграций с популярными API") .Описание("Открытый пакет интеграций с популярными API")

View File

@@ -1019,7 +1019,7 @@
КонецФункции КонецФункции
Функция ВерсияОПИ() Экспорт Функция ВерсияОПИ() Экспорт
Возврат "1.27.0"; Возврат "1.28.0";
КонецФункции КонецФункции
Функция ЯзыкОПИ() Экспорт Функция ЯзыкОПИ() Экспорт

View File

@@ -1019,7 +1019,7 @@
КонецФункции КонецФункции
Функция ВерсияОПИ() Экспорт Функция ВерсияОПИ() Экспорт
Возврат "1.27.0"; Возврат "1.28.0";
КонецФункции КонецФункции
Функция ЯзыкОПИ() Экспорт Функция ЯзыкОПИ() Экспорт

View File

@@ -25,7 +25,7 @@
<usePurposes>PersonalComputer</usePurposes> <usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant> <scriptVariant>Russian</scriptVariant>
<vendor>Bayselonarrend</vendor> <vendor>Bayselonarrend</vendor>
<version>1.27.0</version> <version>1.28.0</version>
<detailedInformation> <detailedInformation>
<key>ru</key> <key>ru</key>
<value>Открытый пакет интеграций - набор библиотек для интеграции с некоторыми популярными API для 1C:Enterprise. Он состоит из общих модулей, каждый из которых отвечает за свой API, а также нескольких модулей-инструментов, общих для всех.</value> <value>Открытый пакет интеграций - набор библиотек для интеграции с некоторыми популярными API для 1C:Enterprise. Он состоит из общих модулей, каждый из которых отвечает за свой API, а также нескольких модулей-инструментов, общих для всех.</value>

View File

@@ -9,7 +9,7 @@
Процедура ПриСозданииОбъекта() Процедура ПриСозданииОбъекта()
Версия = "1.27.0"; Версия = "1.28.0";
ИнициализироватьОсновныеСписки(); ИнициализироватьОсновныеСписки();
ТекущийКаталог = ТекущийСценарий().Каталог; ТекущийКаталог = ТекущийСценарий().Каталог;

View File

@@ -1,5 +1,5 @@
Описание.Имя("oint-cli") Описание.Имя("oint-cli")
.Версия("1.27.0") .Версия("1.28.0")
.Автор("bayselonarrend") .Автор("bayselonarrend")
.АдресАвтора("bayselonarrend@gmail.com") .АдресАвтора("bayselonarrend@gmail.com")
.Описание("OpenIntegrations-based CLI tool") .Описание("OpenIntegrations-based CLI tool")