Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 57 additions & 2 deletions .github/workflows/sonar.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,9 +97,61 @@ on:
required: false

jobs:
build-package:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Для сонара я думаю это излишне)

if: inputs.build_package == true
runs-on: ubuntu-latest
steps:
- name: Актуализация
uses: actions/checkout@v6.0.2

- name: Установка .NET
if: inputs.dotnet_version != ''
uses: actions/setup-dotnet@v5
with:
dotnet-version: ${{ inputs.dotnet_version }}

- name: Вычисление версии OneScript
shell: bash
id: extract_oscript_version
run: |
set -ex
if [ "${{ inputs.oscript_version }}" = "default" ]
then
extracted_version=$(cat packagedef | grep ".ВерсияСреды(" | sed 's|[^"]*"||' | sed -r 's/".+//' || true)
version="${extracted_version:-stable}"
else
version="${{ inputs.oscript_version }}"
fi
echo "version=$version" >> $GITHUB_OUTPUT

- name: Установка OneScript
uses: otymko/setup-onescript@v1.5.1
with:
version: ${{ steps.extract_oscript_version.outputs.version }}

- name: Установка зависимостей
shell: bash
run: |
if [ -n "${{ inputs.opm_version }}" ]; then
opm install opm@${{ inputs.opm_version }}
else
opm install opm
fi
opm install -l

- name: Сборка пакета
run: opm build .

- name: Заливка артефакта пакета
uses: actions/upload-artifact@v6
with:
name: package
path: ./*.ospx

test:
runs-on: ${{ inputs.os_version }}
needs: build-package
if: ${{ !cancelled() && (needs.build-package.result == 'success' || needs.build-package.result == 'skipped') }}
env:
LANG: ${{ inputs.locale }}.UTF-8
LC_ALL: ${{ inputs.locale }}.UTF-8
Expand Down Expand Up @@ -178,9 +230,12 @@ jobs:
if: inputs.additional_oscript_packages != ''
run: opm install -l ${{ inputs.additional_oscript_packages }}

- name: Сборка пакета
- name: Скачивание собранного пакета
if: inputs.build_package == true
run: opm build .
uses: actions/download-artifact@v7
with:
name: package
path: .

- name: Запуск тестов
if: inputs.test_engine == '1testrunner'
Expand Down
70 changes: 66 additions & 4 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,67 @@ on:
default: "tree"

jobs:
build:
build-package:
if: inputs.build_package == true
runs-on: ubuntu-latest
steps:
- name: Актуализация
uses: actions/checkout@v6.0.2

- name: Установка свойств git
shell: bash
run: |
git config --global user.name "GitHub Actions"
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"

- name: Установка .NET
if: inputs.dotnet_version != ''
uses: actions/setup-dotnet@v5
with:
dotnet-version: ${{ inputs.dotnet_version }}

- name: Вычисление версии OneScript
shell: bash
id: extract_oscript_version
run: |
set -ex
if [ "${{ inputs.oscript_version }}" = "default" ]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Всегда извлекать версию OneScript из манифеста

then
extracted_version=$(cat packagedef | grep ".ВерсияСреды(" | sed 's|[^"]*"||' | sed -r 's/".+//' || true)
version="${extracted_version:-stable}"
else
version="${{ inputs.oscript_version }}"
fi
echo "version=$version" >> $GITHUB_OUTPUT

- name: Установка OneScript
uses: otymko/setup-onescript@v1.5.1
with:
version: ${{ steps.extract_oscript_version.outputs.version }}

- name: Установка зависимостей
shell: bash
run: |
if [ -n "${{ inputs.opm_version }}" ]; then
opm install opm@${{ inputs.opm_version }}
else
opm install opm
fi
opm install -l

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Пропущена "Установка дополнительных пакетов"

- name: Сборка пакета
run: opm build .

- name: Заливка артефакта пакета
uses: actions/upload-artifact@v6
with:
name: package
path: ./*.ospx

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Возможно можно задать универсальный паттерн например

  .
  !.git/**
  !oscript_modules/**

@Stivo182 Stivo182 Jan 27, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Хотя указанный в inputs out-каталог действительно будет предпочтительней. Который будет передаваться в path


test:
runs-on: ${{ matrix.os }}
needs: build-package
if: ${{ !cancelled() && (needs.build-package.result == 'success' || needs.build-package.result == 'skipped') }}
env:
LANG: ${{ inputs.locale }}.UTF-8
LC_ALL: ${{ inputs.locale }}.UTF-8
Expand All @@ -96,7 +155,7 @@ jobs:
steps:
- name: Актуализация
uses: actions/checkout@v6.0.2

- name: Установка локали (Windows)
if: startsWith(matrix.os, 'windows')
run: |
Expand Down Expand Up @@ -180,9 +239,12 @@ jobs:
if: inputs.additional_oscript_packages != ''
run: opm install -l ${{ inputs.additional_oscript_packages }}

- name: Сборка пакета
- name: Скачивание собранного пакета
if: inputs.build_package == true
run: opm build .
uses: actions/download-artifact@v7
with:
name: package
path: .

- name: Тестирование
if: matrix.test_engine == '1testrunner'
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ lib.system=../oscript_modules
| opm_version | Версия opm для установки (например, `1.1.0`). <br> Если не указано, устанавливается последняя версия без указания конкретной версии. <br> Используется для обеспечения совместимости с определенными версиями OneScript | |
| additional_oscript_packages | Список дополнительных пакетов oscript для установки, разделенный пробелами | |
| dotnet_version | Версия .NET для установки | |
| build_package | Выполнить сборку пакета перед выполнением тестов | `false` |
| build_package | Выполнить сборку пакета перед выполнением тестов. <br> **Важно:** При значении `true` пакет собирается один раз на `ubuntu-latest` и затем тестируется на всех указанных платформах. Это гарантирует, что одна и та же сборка проверяется везде. | `false` |
| os_versions | Список операционных систем для запуска тестов строкой в формате json-array | `["ubuntu-latest", "windows-latest", "macos-latest"]` |
| test_engine | Фреймворк который будет использован для тестирования, может быть одним из `1testrunner`, `oneunit` | `1testrunner` |

Expand Down Expand Up @@ -221,7 +221,7 @@ jobs:
| sonarqube | Флаг отправки результатов анализа на сервер SonarQube | `true` |
| coveralls | Флаг отправки результатов покрытия на портал [coveralls](https://coveralls.io) | `false` |
| dotnet_version | Версия .NET для установки | |
| build_package | Выполнить сборку пакета перед выполнением тестов | `false` |
| build_package | Выполнить сборку пакета перед выполнением тестов. <br> **Важно:** При значении `true` пакет собирается один раз на `ubuntu-latest` и затем используется для тестирования с покрытием. | `false` |
| os_version | Операционная система для запуска контроля качества | `ubuntu-latest` |
| test_engine | Фреймворк который будет использован для тестирования, может быть одним из `1testrunner`, `oneunit` | `1testrunner` |

Expand Down