Skip to content

Commit 2680159

Browse files
authored
Merge pull request #248 from khorevaa/feature/ga-release
Сборка и выпуск на GA
2 parents 599b808 + 01adeb6 commit 2680159

File tree

10 files changed

+224
-102
lines changed

10 files changed

+224
-102
lines changed

.github/workflows/qa.yml

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# MIT License
2+
# Copyright (C) 2020 Tymko Oleg <olegtymko@yandex.ru> and contributors
3+
# All rights reserved.
4+
5+
name: Контроль качества
6+
# Любой пуш и pr в проекте но с фильтром по основному проекту
7+
on: [push, pull_request]
8+
jobs:
9+
build:
10+
if: github.repository == 'oscript-library/gitsync'
11+
runs-on: ${{ matrix.os }}
12+
strategy:
13+
fail-fast: false
14+
matrix:
15+
os: [ubuntu-latest]
16+
oscript_version: ['1.4.0']
17+
18+
steps:
19+
# Загрузка проекта
20+
- name: Актуализация
21+
uses: actions/checkout@v2
22+
23+
# https://stackoverflow.com/questions/58033366/how-to-get-current-branch-within-github-actions
24+
- name: Извлечение имени текущей ветки
25+
shell: bash
26+
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
27+
id: extract_branch
28+
29+
# Установка OneScript конкретной версии
30+
- name: Установка OneScript
31+
uses: otymko/setup-onescript@v1.0
32+
with:
33+
version: ${{ matrix.oscript_version }}
34+
35+
# Установка зависимостей пакета
36+
- name: Установка зависимостей
37+
run: |
38+
opm install opm
39+
opm install --dev
40+
41+
# Запуск тестов и сбор покрытия кода
42+
- name: Покрытие кода
43+
run: oscript ./tasks/coverage.os true
44+
45+
- name: Compute branch name
46+
uses: nixel2007/branch-name@v3
47+
48+
- name: Извлечение версии пакета
49+
shell: bash
50+
run: echo "##[set-output name=version;]`cat packagedef | grep ".Версия(" | sed 's|[^"]*"||' | sed -r 's/".+//'`"
51+
id: extract_version
52+
53+
- name: Установка Sonar-scanner
54+
uses: warchant/setup-sonar-scanner@v1
55+
56+
# Анализ проекта в SonarQube (ветка)
57+
- name: Анализ в SonarQube (branch)
58+
if: github.event_name == 'push'
59+
run: sonar-scanner
60+
-Dsonar.login=${{ secrets.SONARQUBE_TOKEN }}
61+
-Dsonar.host.url=${{ secrets.SONARQUBE_HOST }}
62+
-Dsonar.branch.name=${{ steps.extract_branch.outputs.branch }}
63+
-Dsonar.projectVersion=${{ steps.extract_version.outputs.version }}
64+
65+
# Анализ проекта в SonarQube (PR)
66+
# https://docs.sonarqube.org/latest/analysis/pull-request/
67+
- name: Анализ в SonarQube (pull-request)
68+
if: github.event_name == 'pull_request'
69+
run: sonar-scanner
70+
-Dsonar.login=${{ secrets.SONARQUBE_TOKEN }}
71+
-Dsonar.host.url=${{ secrets.SONARQUBE_HOST }}
72+
-Dsonar.branch.name=${{ steps.extract_branch.outputs.branch }}
73+
-Dsonar.pullrequest.key=${{ github.event.pull_request.number }}
74+
-Dsonar.pullrequest.branch=${{ github.event.pull_request.head.ref }}
75+
-Dsonar.pullrequest.base=${{ github.event.pull_request.base.ref }}
76+
-Dsonar.scm.revision=${{ github.event.pull_request.head.sha }}

.github/workflows/release.yml

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# MIT License
2+
# Copyright (C) 2020 Tymko Oleg <olegtymko@yandex.ru> and contributors
3+
# All rights reserved.
4+
5+
name: Подготовка релиза и публикация в хабе
6+
# Только события создания и изменения релиза
7+
on:
8+
release:
9+
types: [published, edited]
10+
jobs:
11+
build:
12+
runs-on: ${{ matrix.os }}
13+
strategy:
14+
fail-fast: false
15+
matrix:
16+
os: [ubuntu-latest]
17+
oscript_version: ['1.4.0']
18+
package_mask: ["gitsync-*.ospx"]
19+
package_exe_mask: ["gitsync.exe"]
20+
steps:
21+
# Загрузка проекта
22+
- name: Актуализация
23+
uses: actions/checkout@v2
24+
25+
# Установка OneScript конкретной версии
26+
- name: Установка OneScript
27+
uses: otymko/setup-onescript@v1.0
28+
with:
29+
version: ${{ matrix.oscript_version }}
30+
31+
# Установка зависимостей пакета
32+
- name: Установка зависимостей
33+
run: |
34+
opm install opm
35+
opm install
36+
37+
- name: Сборка пакета
38+
run: opm run build
39+
40+
- name: Заливка артифактов
41+
uses: actions/upload-artifact@v2
42+
with:
43+
name: gitsync.ospx.zip
44+
path: ./${{ matrix.package_mask }}
45+
46+
- name: Заливка в релиз
47+
uses: AButler/upload-release-assets@v1.0
48+
with:
49+
files: ./${{ matrix.package_mask }}
50+
repo-token: ${{ secrets.GITHUB_TOKEN }}
51+
52+
- name: Публикация в hub.oscript.io
53+
shell: bash
54+
run: opm push -f ./${{ matrix.package_mask }} --token ${{ env.TOKEN }} -c stable
55+
env:
56+
TOKEN: ${{ secrets.OSHUB_TOKEN }}
57+
58+
- name: Сборка пакета exe
59+
run: |
60+
opm run pack
61+
opm run make
62+
63+
- name: Заливка артифактов
64+
uses: actions/upload-artifact@v2
65+
with:
66+
name: gitsync.exe.zip
67+
path: ./bin/${{ matrix.package_exe_mask }}
68+
69+
- name: Заливка в релиз exe
70+
uses: AButler/upload-release-assets@v1.0
71+
with:
72+
files: ./bin/${{ matrix.package_exe_mask }}
73+
repo-token: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/testing.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# MIT License
2+
# Copyright (C) 2020 Tymko Oleg <olegtymko@yandex.ru> and contributors
3+
# All rights reserved.
4+
5+
name: Тестирование
6+
# Любой пуш и pr в проекте
7+
on: [push, pull_request]
8+
9+
jobs:
10+
build:
11+
runs-on: ${{ matrix.os }}
12+
strategy:
13+
fail-fast: false
14+
matrix:
15+
os: [ubuntu-latest]
16+
oscript_version: ['1.4.0']
17+
18+
steps:
19+
# Загрузка проекта
20+
- name: Актуализация
21+
uses: actions/checkout@v2
22+
23+
# Установка OneScript конкретной версии
24+
- name: Установка OneScript
25+
uses: otymko/setup-onescript@v1.0
26+
with:
27+
version: ${{ matrix.oscript_version }}
28+
29+
# Установка зависимостей пакета
30+
- name: Установка зависимостей
31+
run: |
32+
opm install opm
33+
opm install --dev
34+
35+
# Задача тестирования, в результате ожидается успешное выполнение
36+
- name: Тестирование
37+
run: oscript ./tasks/test.os true

.travis.yml

Lines changed: 0 additions & 54 deletions
This file was deleted.

build_packagedef

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@
4545
КонецПроцедуры
4646

4747
Описание.Имя("gitsync")
48-
.Версия("3.1.0")
49-
.ВерсияСреды("1.0.21")
48+
.Версия("3.2.0")
49+
.ВерсияСреды("1.4.0")
5050
.ВключитьФайл("src")
5151
.ВключитьФайл("embedded_plugins")
5252
.ВключитьФайл("oscript_modules")

packagedef

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,27 @@
11

22
Описание.Имя("gitsync")
3-
.Версия("3.1.0")
4-
.ВерсияСреды("1.0.21")
3+
.Версия("3.2.0")
4+
.ВерсияСреды("1.4.0")
55
.ЗависитОт("logos", "1.2.1")
66
.ЗависитОт("tempfiles", "1.0.0")
7-
.ЗависитОт("v8runner", "1.3.0")
7+
.ЗависитОт("v8runner", "1.8.0")
88
.ЗависитОт("gitrunner", "1.6.0")
99
.ЗависитОт("strings", "0.4.1")
1010
.ЗависитОт("1commands", "1.4.0")
1111
.ЗависитОт("json", "1.1.1")
1212
.ЗависитОт("fs", "1.0.0")
1313
.ЗависитОт("delegate", "0.2.0")
14-
.ЗависитОт("v8storage", "0.8.0")
14+
.ЗависитОт("v8storage", "0.9.3")
1515
.ЗависитОт("reflector", "0.4.0")
1616
.ЗависитОт("opm", "0.15.3")
1717
.ЗависитОт("cli", "0.9.10")
1818
.ЗависитОт("configor", "0.6.3")
19+
.РазработкаЗависитОт("1bdd")
20+
.РазработкаЗависитОт("1testrunner")
21+
.РазработкаЗависитОт("asserts")
22+
.РазработкаЗависитОт("coverage")
23+
.РазработкаЗависитОт("1commands")
24+
.РазработкаЗависитОт("fs")
1925
.ВключитьФайл("src")
2026
.ВключитьФайл("docs")
2127
.ВключитьФайл("embedded_plugins")

sonar-project.properties

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
# must be unique in a given SonarQube instance
2-
sonar.projectKey=opensource-gitsync
3-
sonar.organization=sonar-opensource-add
2+
sonar.projectKey=gitsync
43

54
# this is the name displayed in the SonarQube UI
65
sonar.projectName=1S storage and git sync for OScript

sonar-qube.sh

Lines changed: 0 additions & 22 deletions
This file was deleted.

tasks/coverage.os

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,25 @@
1-
#Использовать fs
21
#Использовать coverage
32
#Использовать 1commands
3+
#Использовать fs
44

5-
Функция ЭтоWindows()
6-
Если ЭтоWindows = Неопределено Тогда
7-
СистемнаяИнформация = Новый СистемнаяИнформация;
8-
ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0;
9-
КонецЕсли;
10-
Возврат ЭтоWindows;
11-
КонецФункции
12-
13-
Процедура УстановитьДвижок(Команда)
14-
Команда.УстановитьКоманду("oscript");
15-
Если Не ЭтоWindows() Тогда
16-
Команда.ДобавитьПараметр("-encoding=utf-8");
17-
КонецЕсли;
18-
КонецПроцедуры
5+
Если АргументыКоманднойСтроки.Количество() = 0 Тогда
6+
ТолькоЮнитТесты = Ложь;
7+
Иначе
8+
ТолькоЮнитТесты = Булево(АргументыКоманднойСтроки[0]);
9+
КонецЕсли;
1910

2011
ФС.ОбеспечитьПустойКаталог("coverage");
2112
ПутьКСтат = "coverage/stat.json";
2213

2314
Команда = Новый Команда;
24-
УстановитьДвижок(Команда);
15+
Команда.УстановитьКоманду("oscript");
16+
Команда.ДобавитьПараметр("-encoding=utf-8");
2517
Команда.ДобавитьПараметр(СтрШаблон("-codestat=%1", ПутьКСтат));
2618
Команда.ДобавитьПараметр("tasks/test.os");
19+
Если ТолькоЮнитТесты Тогда
20+
Команда.ДобавитьПараметр("true");
21+
КонецЕсли;
22+
2723
Команда.ПоказыватьВыводНемедленно(Истина);
2824

2925
КодВозврата = Команда.Исполнить();
@@ -35,6 +31,7 @@
3531
ПроцессорГенерации = Новый ГенераторОтчетаПокрытия();
3632

3733
ПроцессорГенерации.ОтносительныеПути()
34+
.ИмяФайлаСтатистики("stat*.json")
3835
.ФайлСтатистики(Файл_Стат.ПолноеИмя)
3936
.GenericCoverage()
4037
.Cobertura()

0 commit comments

Comments
 (0)