diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 276d44407d..0000000000 --- a/.editorconfig +++ /dev/null @@ -1,290 +0,0 @@ -# Remove the line below if you want to inherit .editorconfig settings from higher directories -root = true - -# C# files -[*.cs] - -#### Core EditorConfig Options #### - -# Indentation and spacing -indent_size = 4 -indent_style = space -tab_width = 4 - -# New line preferences -end_of_line = crlf -insert_final_newline = false - -#### .NET Coding Conventions #### - -# Organize usings -dotnet_separate_import_directive_groups = true -dotnet_sort_system_directives_first = true -file_header_template = unset - -# this. and Me. preferences -dotnet_style_qualification_for_event = false:silent -dotnet_style_qualification_for_field = false:silent -dotnet_style_qualification_for_method = false:silent -dotnet_style_qualification_for_property = false:silent - -# Language keywords vs BCL types preferences -dotnet_style_predefined_type_for_locals_parameters_members = true:silent -dotnet_style_predefined_type_for_member_access = true:silent - -# Parentheses preferences -dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent -dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent -dotnet_style_parentheses_in_other_operators = always_for_clarity:silent -dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent - -# Modifier preferences -dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent - -# Expression-level preferences -dotnet_style_object_initializer = true:suggestion -dotnet_style_collection_initializer = true:suggestion -dotnet_style_explicit_tuple_names = true:suggestion -dotnet_style_null_propagation = true:suggestion -dotnet_style_coalesce_expression = true:suggestion -dotnet_style_prefer_is_null_check_over_reference_equality_method = true:silent -dotnet_style_prefer_inferred_tuple_names = true:suggestion -dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion -dotnet_style_prefer_auto_properties = true:silent -dotnet_style_prefer_conditional_expression_over_assignment = true:suggestion -dotnet_style_prefer_conditional_expression_over_return = true:suggestion - -# Field preferences -dotnet_style_readonly_field = true:warning - -# Parameter preferences -dotnet_code_quality_unused_parameters = all:warning - -# Suppression preferences -dotnet_remove_unnecessary_suppression_exclusions = none - -# New line preferences -dotnet_style_allow_multiple_blank_lines_experimental = false -dotnet_style_allow_statement_immediately_after_block_experimental = false - -#### C# Coding Conventions #### - -# var preferences -csharp_style_var_elsewhere = true:warning -csharp_style_var_for_built_in_types = true:warning -csharp_style_var_when_type_is_apparent = true:warning - -# Expression-bodied members -csharp_style_expression_bodied_methods = false:silent -csharp_style_expression_bodied_constructors = false:silent -csharp_style_expression_bodied_operators = false:silent -csharp_style_expression_bodied_properties = true:silent -csharp_style_expression_bodied_indexers = true:silent -csharp_style_expression_bodied_accessors = true:silent - -# Pattern matching preferences -csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion -csharp_style_pattern_matching_over_as_with_null_check = true:suggestion - -# Null-checking preferences -csharp_style_conditional_delegate_call = true:suggestion - -# Modifier preferences -csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:suggestion - -# Code-block preferences -csharp_prefer_braces = true:warning -csharp_prefer_simple_using_statement = false:silent -csharp_style_namespace_declarations = file_scoped:warning - -# Expression-level preferences -csharp_prefer_simple_default_expression = false:silent -csharp_style_deconstructed_variable_declaration = true:suggestion -csharp_style_implicit_object_creation_when_type_is_apparent = false:suggestion -csharp_style_inlined_variable_declaration = true:suggestion -csharp_style_pattern_local_over_anonymous_function = true:suggestion -csharp_style_prefer_index_operator = false:suggestion -csharp_style_prefer_null_check_over_type_check = true:suggestion -csharp_style_prefer_range_operator = false:suggestion -csharp_style_throw_expression = true:suggestion -csharp_style_unused_value_assignment_preference = discard_variable:suggestion -csharp_style_unused_value_expression_statement_preference = discard_variable:suggestion - -# 'using' directive preferences -csharp_using_directive_placement = outside_namespace:warning - -# New line preferences -csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = false:silent -csharp_style_allow_blank_lines_between_consecutive_braces_experimental = false:silent -csharp_style_allow_embedded_statements_on_same_line_experimental = true:silent - -#### C# Formatting Rules #### - -# New line preferences -csharp_new_line_before_catch = true -csharp_new_line_before_else = true -csharp_new_line_before_finally = true -csharp_new_line_before_members_in_anonymous_types = true -csharp_new_line_before_members_in_object_initializers = true -csharp_new_line_before_open_brace = all -csharp_new_line_between_query_expression_clauses = true - -# Indentation preferences -csharp_indent_block_contents = true -csharp_indent_braces = false -csharp_indent_case_contents = true -csharp_indent_case_contents_when_block = true -csharp_indent_labels = one_less_than_current -csharp_indent_switch_labels = true - -# Space preferences -csharp_space_after_cast = false -csharp_space_after_colon_in_inheritance_clause = true -csharp_space_after_comma = true -csharp_space_after_dot = false -csharp_space_after_keywords_in_control_flow_statements = true -csharp_space_after_semicolon_in_for_statement = true -csharp_space_around_binary_operators = before_and_after -csharp_space_around_declaration_statements = false -csharp_space_before_colon_in_inheritance_clause = true -csharp_space_before_comma = false -csharp_space_before_dot = false -csharp_space_before_open_square_brackets = false -csharp_space_before_semicolon_in_for_statement = false -csharp_space_between_empty_square_brackets = false -csharp_space_between_method_call_empty_parameter_list_parentheses = false -csharp_space_between_method_call_name_and_opening_parenthesis = false -csharp_space_between_method_call_parameter_list_parentheses = false -csharp_space_between_method_declaration_empty_parameter_list_parentheses = false -csharp_space_between_method_declaration_name_and_open_parenthesis = false -csharp_space_between_method_declaration_parameter_list_parentheses = false -csharp_space_between_parentheses = false -csharp_space_between_square_brackets = false - -# Wrapping preferences -csharp_preserve_single_line_blocks = true -csharp_preserve_single_line_statements = true - -#### Naming styles #### - -# Naming rules - -dotnet_naming_rule.private_field_should_be_begin_with_underscore.severity = warning -dotnet_naming_rule.private_field_should_be_begin_with_underscore.symbols = private_field -dotnet_naming_rule.private_field_should_be_begin_with_underscore.style = begin_with_underscore - -dotnet_naming_rule.public_field_should_be_begin_without_underscore.severity = warning -dotnet_naming_rule.public_field_should_be_begin_without_underscore.symbols = public_field -dotnet_naming_rule.public_field_should_be_begin_without_underscore.style = begin_without_underscore - -dotnet_naming_rule.interface_should_be_begins_with_i.severity = warning -dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface -dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i - -dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = warning -dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields -dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case - -dotnet_naming_rule.types_should_be_pascal_case.severity = warning -dotnet_naming_rule.types_should_be_pascal_case.symbols = types -dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case - -# Symbol specifications - -dotnet_naming_symbols.interface.applicable_kinds = interface -dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected -dotnet_naming_symbols.interface.required_modifiers = - -dotnet_naming_symbols.private_field.applicable_kinds = field -dotnet_naming_symbols.private_field.applicable_accessibilities = private, protected, private_protected -dotnet_naming_symbols.private_field.required_modifiers = - -dotnet_naming_symbols.constant_fields.applicable_kinds = field -dotnet_naming_symbols.constant_fields.required_modifiers = const - -dotnet_naming_symbols.public_field.applicable_kinds = field -dotnet_naming_symbols.public_field.applicable_accessibilities = public, internal, protected_internal -dotnet_naming_symbols.public_field.required_modifiers = - -dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum, property -dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected -dotnet_naming_symbols.types.required_modifiers = - -# Naming styles - -dotnet_naming_style.pascal_case.required_prefix = -dotnet_naming_style.pascal_case.required_suffix = -dotnet_naming_style.pascal_case.word_separator = -dotnet_naming_style.pascal_case.capitalization = pascal_case - -dotnet_naming_style.begins_with_i.required_prefix = I -dotnet_naming_style.begins_with_i.required_suffix = -dotnet_naming_style.begins_with_i.word_separator = -dotnet_naming_style.begins_with_i.capitalization = pascal_case - -dotnet_naming_style.begin_with_underscore.required_prefix = _ -dotnet_naming_style.begin_with_underscore.required_suffix = -dotnet_naming_style.begin_with_underscore.word_separator = -dotnet_naming_style.begin_with_underscore.capitalization = camel_case - -dotnet_naming_style.begin_without_underscore.required_prefix = -dotnet_naming_style.begin_without_underscore.required_suffix = -dotnet_naming_style.begin_without_underscore.word_separator = -dotnet_naming_style.begin_without_underscore.capitalization = pascal_case - -csharp_style_expression_bodied_lambdas = true:silent -csharp_style_expression_bodied_local_functions = false:silent -csharp_style_prefer_local_over_anonymous_function = true:suggestion -csharp_style_prefer_tuple_swap = true:suggestion -csharp_prefer_static_local_function = true:suggestion -csharp_style_prefer_switch_expression = true:suggestion -csharp_style_prefer_pattern_matching = true:silent -csharp_style_prefer_not_pattern = true:suggestion -csharp_style_prefer_extended_property_pattern = true:suggestion -dotnet_diagnostic.CA1001.severity = warning -dotnet_diagnostic.CA1805.severity = warning -dotnet_diagnostic.CA1841.severity = warning -dotnet_diagnostic.SYSLIB1006.severity = silent -dotnet_diagnostic.SYSLIB1015.severity = silent - -[*.{cs,vb}] -dotnet_style_operator_placement_when_wrapping = beginning_of_line -tab_width = 4 -indent_size = 4 -end_of_line = crlf -dotnet_style_coalesce_expression = true:suggestion -dotnet_style_null_propagation = true:suggestion -dotnet_style_prefer_is_null_check_over_reference_equality_method = true:silent -dotnet_style_prefer_auto_properties = true:silent -dotnet_style_object_initializer = true:suggestion -dotnet_style_collection_initializer = true:suggestion -dotnet_style_prefer_simplified_boolean_expressions = true:suggestion -dotnet_style_prefer_conditional_expression_over_assignment = true:suggestion -dotnet_style_prefer_conditional_expression_over_return = true:suggestion -dotnet_style_explicit_tuple_names = true:suggestion -dotnet_style_prefer_inferred_tuple_names = true:suggestion -dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion -dotnet_style_prefer_compound_assignment = true:suggestion -dotnet_style_prefer_simplified_interpolation = true:suggestion -dotnet_style_namespace_match_folder = true:suggestion -dotnet_style_readonly_field = true:warning -dotnet_style_predefined_type_for_locals_parameters_members = true:silent -dotnet_style_predefined_type_for_member_access = true:silent -dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent -dotnet_style_allow_multiple_blank_lines_experimental = false:silent -dotnet_style_allow_statement_immediately_after_block_experimental = false:silent -dotnet_code_quality_unused_parameters = all:warning -dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent -dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent -dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent -dotnet_style_parentheses_in_other_operators = always_for_clarity:silent -dotnet_style_qualification_for_field = false:silent -dotnet_style_qualification_for_property = false:silent -dotnet_style_qualification_for_method = false:silent -dotnet_style_qualification_for_event = false:silent -dotnet_diagnostic.CA1715.severity = warning -dotnet_diagnostic.CA1716.severity = silent -dotnet_diagnostic.CA5397.severity = warning - - -file_header_template = (c) Copyright Ascensio System SIA 2010-2022\n\nThis program is a free software product.\nYou can redistribute it and/or modify it under the terms\nof the GNU Affero General Public License (AGPL) version 3 as published by the Free Software\nFoundation. In accordance with Section 7(a) of the GNU AGPL its Section 15 shall be amended\nto the effect that Ascensio System SIA expressly excludes the warranty of non-infringement of\nany third-party rights.\n\nThis program is distributed WITHOUT ANY WARRANTY, without even the implied warranty\nof MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For details, see\nthe GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html\n\nYou can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, EU, LV-1021.\n\nThe interactive user interfaces in modified source and object code versions of the Program must\ndisplay Appropriate Legal Notices, as required under Section 5 of the GNU AGPL version 3.\n\nPursuant to Section 7(b) of the License you must retain the original Product logo when\ndistributing the program. Pursuant to Section 7(e) we decline to grant you any rights under\ntrademark law for use of our trademarks.\n\nAll the Product's GUI elements, including illustrations and icon sets, as well as technical writing\ncontent are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0\nInternational. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode \ No newline at end of file diff --git a/.github/workflows/4testing-multi-build.yml b/.github/workflows/4testing-multi-build.yml deleted file mode 100644 index 99b3df070c..0000000000 --- a/.github/workflows/4testing-multi-build.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: 4testing multiarch-build - -on: - push: - branches: - - 'hotfix/v**' - - 'release/v**' - - 'feature/v*-git-action' -env: - DOCKER_PATH: "/build/install/docker" - REPO: "onlyoffice" - DOCKER_IMAGE_PREFIX: "4testing-docspace" - DOCKERFILE: "Dockerfile.app" - -jobs: - build: - runs-on: ubuntu-latest - strategy: - matrix: - platform: [linux/amd64] - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - - name: Set up Docker Buildx - id: buildx - uses: docker/setup-buildx-action@v2 - - name: Login to DockerHub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build 4testing - run: | - cd .${DOCKER_PATH} - DOCKER_TAG=$(echo "${GITHUB_REF_NAME}" | sed '/^release\b\|^hotfix\b\|^feature\b/s/release.*\/\|hotfix.*\/\|feature.*\///; s/-git-action$//; s/^v//').${{github.run_number}} - export DOCKER_TAG - - docker buildx bake -f build.yml \ - --set *.args.GIT_BRANCH=$GITHUB_REF_NAME \ - --set *.platform=linux/amd64 \ - --push - shell: bash diff --git a/.github/workflows/build-ffvideo.yml b/.github/workflows/build-ffvideo.yml deleted file mode 100644 index c0c66f2077..0000000000 --- a/.github/workflows/build-ffvideo.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: ffvideo build - -on: - push: - branches: - - 'hotfix/v**' - - 'release/v**' - paths: - - 'build/install/docker/**.ffvideo' - -jobs: - build: - runs-on: ubuntu-latest - strategy: - matrix: - platform: [linux/amd64] - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - - - name: Set up Docker Buildx - id: buildx - uses: docker/setup-buildx-action@v2 - - - name: Login to DockerHub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and push - uses: docker/build-push-action@v4 - with: - context: . - file: ./build/install/docker/Dockerfile.ffvideo - push: true - tags: onlyoffice/ffvideo:6.0 - diff --git a/.github/workflows/build-runtime-images.yml b/.github/workflows/build-runtime-images.yml deleted file mode 100644 index 59cd5097fd..0000000000 --- a/.github/workflows/build-runtime-images.yml +++ /dev/null @@ -1,137 +0,0 @@ -name: build docker runtime images - -on: - push: - branches: - - 'hotfix/v**' - - 'release/v**' - - 'feature/docker-dev' - paths: - - '/build/install/docker/Dockerfile.runtime' - - '.github/workflows/build-runtime-images.yml' - - 'config/*' - - '/build/install/docker/config/nginx/**' -env: - REPOSITORY_NAME: "onlyoffice" - TAG: "v1.0.0" - DOTNET_RUNTIME_IMAGE: "4testing-docspace-dotnet-runtime" - NODEJS_RUNTIME_IMAGE: "4testing-docspace-nodejs-runtime" - PROXY_RUNTIME_IMAGE: "4testing-docspace-proxy-runtime" - DOCKERFILE_BUILD: "build/install/docker/Dockerfile.runtime" - -jobs: - build: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - platform: - - linux/amd64 - - linux/arm64 - steps: - - - name: Checkout - uses: actions/checkout@v2 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - - - name: Set up Docker Buildx - id: buildx - uses: docker/setup-buildx-action@v1 - - - name: Login to DockerHub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build ${{ env.REPOSITORY_NAME }}/${{ env.DOTNET_RUNTIME_IMAGE }} - uses: docker/build-push-action@v4 - id: build-dotnetrun - with: - context: . - file: ${{ env.DOCKERFILE_BUILD }} - platforms: ${{ matrix.platform}} - target: dotnetrun - outputs: type=image,name=${{ env.REPOSITORY_NAME }}/${{ env.DOTNET_RUNTIME_IMAGE }},push-by-digest=true,name-canonical=true,push=true - - - name: Build ${{ env.REPOSITORY_NAME }}/${{ env.NODEJS_RUNTIME_IMAGE }} - uses: docker/build-push-action@v4 - id: build-noderun - with: - context: . - file: ${{ env.DOCKERFILE_BUILD }} - platforms: ${{ matrix.platform}} - target: noderun - outputs: type=image,name=${{ env.REPOSITORY_NAME }}/${{ env.NODEJS_RUNTIME_IMAGE }},push-by-digest=true,name-canonical=true,push=true - - - name: Build ${{ env.REPOSITORY_NAME }}/${{ env.PROXY_RUNTIME_IMAGE }} - uses: docker/build-push-action@v4 - id: build-proxy - with: - context: . - file: ${{ env.DOCKERFILE_BUILD }} - platforms: ${{ matrix.platform}} - target: proxy - outputs: type=image,name=${{ env.REPOSITORY_NAME }}/${{ env.PROXY_RUNTIME_IMAGE }},push-by-digest=true,name-canonical=true,push=true - - - name: Export digest - run: | - mkdir -p /tmp/digests/${{ env.DOTNET_RUNTIME_IMAGE }} - digest="${{ steps.build-dotnetrun.outputs.digest }}" - touch "/tmp/digests/${{ env.DOTNET_RUNTIME_IMAGE }}/${digest#sha256:}" - - mkdir -p /tmp/digests/${{ env.NODEJS_RUNTIME_IMAGE }} - digest="${{ steps.build-noderun.outputs.digest }}" - touch "/tmp/digests/${{ env.NODEJS_RUNTIME_IMAGE }}/${digest#sha256:}" - - mkdir -p /tmp/digests/${{ env.PROXY_RUNTIME_IMAGE }} - digest="${{ steps.build-proxy.outputs.digest }}" - touch "/tmp/digests/${{ env.PROXY_RUNTIME_IMAGE }}/${digest#sha256:}" - - - name: Upload digest - uses: actions/upload-artifact@v3 - with: - name: digests - path: /tmp/digests/* - if-no-files-found: error - retention-days: 1 - merge: - runs-on: ubuntu-latest - needs: - - build - steps: - - - name: Download digests - uses: actions/download-artifact@v3 - with: - name: digests - path: /tmp/digests - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: Login to Docker Hub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Create ${{ env.DOTNET_RUNTIME_IMAGE }} list and push - working-directory: /tmp/digests/${{ env.DOTNET_RUNTIME_IMAGE }} - run: | - docker buildx imagetools create -t ${{ env.REPOSITORY_NAME }}/${{ env.DOTNET_RUNTIME_IMAGE }}:${{ env.TAG }} \ - $(printf '${{ env.REPOSITORY_NAME }}/${{ env.DOTNET_RUNTIME_IMAGE }}@sha256:%s ' *) - - - name: Create ${{ env.NODEJS_RUNTIME_IMAGE }} list and push - working-directory: /tmp/digests/${{ env.NODEJS_RUNTIME_IMAGE }} - run: | - docker buildx imagetools create -t ${{ env.REPOSITORY_NAME }}/${{ env.NODEJS_RUNTIME_IMAGE }}:${{ env.TAG }} \ - $(printf '${{ env.REPOSITORY_NAME }}/${{ env.NODEJS_RUNTIME_IMAGE }}@sha256:%s ' *) - - - name: Create ${{ env.PROXY_RUNTIME_IMAGE }} list and push - working-directory: /tmp/digests/${{ env.PROXY_RUNTIME_IMAGE }} - run: | - docker buildx imagetools create -t ${{ env.REPOSITORY_NAME }}/${{ env.PROXY_RUNTIME_IMAGE }}:${{ env.TAG }} \ - $(printf '${{ env.REPOSITORY_NAME }}/${{ env.PROXY_RUNTIME_IMAGE }}@sha256:%s ' *) diff --git a/.github/workflows/build_packages.yml b/.github/workflows/build_packages.yml deleted file mode 100644 index a7de4e4130..0000000000 --- a/.github/workflows/build_packages.yml +++ /dev/null @@ -1,157 +0,0 @@ -name: Build packages - -on: - push: - branches: - - release/* - - develop - - hotfix/* - paths: - - build/install/deb** - - build/install/rpm** - - build/install/common** - workflow_dispatch: - -concurrency: - group: ${{ github.ref }} - cancel-in-progress: true - -env: - PRODUCT: ${{ github.event.repository.name }} - PRODUCT_LOW: echo ${{ github.event.repository.name }} | tr '[:upper:]' '[:lower:]' - PRODUCT_VERSION: echo ${{ github.ref }} | grep -oP '\d+\.\d+\.\d+' || echo '1.1.3' - BUILD_NUMBER: ${{ github.run_number }} - BRANCH_NAME: echo ${GITHUB_REF#refs/heads/} - PACKAGE_DIRECTORY: "/home/runner/work/${{ github.event.repository.name }}/${{ github.event.repository.name }}/build/install" - -jobs: - build: - name: Build Packages - runs-on: ubuntu-20.04 - permissions: - contents: write - - strategy: - matrix: - packageType: [deb, rpm] - - steps: - # To avoid mistake "System.IO.IOException: No space left on device" - - name: Free Disk Space - run: | - sudo rm -rf /usr/local/lib/android /opt/ghc - sudo docker image prune --all --force - - - name: Import GPG - uses: crazy-max/ghaction-import-gpg@v5 - id: gpg_step - with: - gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} - passphrase: ${{ secrets.GPG_PRIVATE_KEY_PASS }} - - - name: Get files from repository - uses: actions/checkout@v3 - with: - submodules: 'recursive' - - - name: Prepare build - run: | - wget -O - https://dl.yarnpkg.com/debian/pubkey.gpg | \ - sudo gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/yarnkey.gpg --import - sudo chmod 644 /usr/share/keyrings/yarnkey.gpg - echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian/ stable main" | \ - sudo tee /etc/apt/sources.list.d/yarn.list - wget https://packages.microsoft.com/config/$(lsb_release -is | \ - tr [:upper:] [:lower:])/$(lsb_release -rs)/packages-microsoft-prod.deb -O packages-microsoft-prod.deb - sudo dpkg -i packages-microsoft-prod.deb - echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main" | \ - sudo tee /etc/apt/sources.list.d/nodesource.list - wget -O - https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | \ - sudo gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/nodesource.gpg --import - sudo chmod 644 /usr/share/keyrings/nodesource.gpg - sudo apt-get -y update - sudo apt install -y dotnet-sdk-7.0 yarn nodejs rename - sudo npm install -g json - if [[ "${{ matrix.packageType }}" == "rpm" ]]; then - sudo apt install -y python3-rpm python3-pip - sudo pip install rpmlint - else - sudo apt install -y dpkg-sig lintian dh-make - fi - - - name: Build DEB Packages - if: matrix.packageType == 'deb' - run: | - cd build/install/deb/ - rename -f -v "s/product([^\/]*)$/$(${{ env.PRODUCT_LOW }})\$1/g" debian/* ../common/* ../common/logrotate/* - find ../ -type f -exec sed -i "s/{{product}}/$(${{ env.PRODUCT_LOW }})/g" {} ';' - sed -i "s/{{package_header_tag_version}}/$(${{ env.PRODUCT_VERSION }}).${{ env.BUILD_NUMBER }}/g" debian/changelog debian/control - dpkg-buildpackage -uc -k${{ steps.gpg_step.outputs.fingerprint }} - - - name: Build RPM Packages - if: matrix.packageType == 'rpm' - run: | - cd build/install/rpm/SPECS - mv ./SOURCES/product.rpmlintrc ./SOURCES/$(${{ env.PRODUCT_LOW }}).rpmlintrc - wget https://github.com/ONLYOFFICE/${{ env.PRODUCT }}/archive/$(${{ env.BRANCH_NAME }}).tar.gz \ - -O ./SOURCES/${{ env.PRODUCT }}-$(${{ env.BRANCH_NAME }} | tr '/' '-').tar.gz - wget https://github.com/ONLYOFFICE/document-templates/archive/main/community-server.tar.gz \ - -O ./SOURCES/document-templates-main-community-server.tar.gz - wget https://github.com/ONLYOFFICE/dictionaries/archive/master.tar.gz \ - -O ./SOURCES/dictionaries-master.tar.gz - sed -i -e '/BuildRequires/d' product.spec - rpmbuild -D "packager Ascensio System SIA " \ - -D "GIT_BRANCH $(${{ env.BRANCH_NAME }}| tr '/' '-')" -D "_topdir $(pwd)" \ - -D "version $(${{ env.PRODUCT_VERSION }})" \ - -D "release ${{ env.BUILD_NUMBER }}" -ba product.spec - - - name: Sign RPM Packages - if: matrix.packageType == 'rpm' - run: | - cat << EOF >> $HOME/.rpmmacros - %_signature gpg - %_gpg_name ${{ secrets.GPG_KEY_NAME }} - %_gpg_path $HOME/.gnupg - %__gpg /usr/bin/gpg - EOF - gpg --export --armor --output onlyoffice-gpgkey.pub - rpm --import onlyoffice-gpgkey.pub - rpm --addsign ${{ env.PACKAGE_DIRECTORY }}/rpm/SPECS/RPMS/noarch/*.rpm - - - name: Upload DEB Packages - if: matrix.packageType == 'deb' - run: | - for deb_package in ${{ env.PACKAGE_DIRECTORY }}/*.deb; do - echo $deb_package - curl --verbose \ - --user ${{ secrets.REPO_LOGIN }}:${{ secrets.REPO_PASS }} \ - -H "Content-Type: multipart/form-data" \ - --data-binary "@$deb_package" ${{ secrets.REPO_URL_4TESTING_DEB }} - done - - - name: Upload RPM Packages - if: matrix.packageType == 'rpm' - run: | - for rpm_package in ${{ env.PACKAGE_DIRECTORY }}/rpm/SPECS/RPMS/noarch/*.rpm; do - curl --verbose \ - --user ${{ secrets.REPO_LOGIN }}:${{ secrets.REPO_PASS }} \ - --upload-file "$rpm_package" ${{ secrets.REPO_URL_4TESTING_RPM }} - done - - - name: Checking the DEB package for errors - if: matrix.packageType == 'deb' - run: | - lintian --profile debian ${{ env.PACKAGE_DIRECTORY }}/*.deb | tee -a LINTIAN - if grep -qE '^(W:|E:)' LINTIAN; then - echo "::warning Noticedeb=lintian::$(cat LINTIAN | awk '/^W:/ { ws += 1 } /^E:/ { es += 1 } END { print "Warnings:", ws, "Errors:", es }')" - fi - - - name: Checking the RPM package for errors - if: matrix.packageType == 'rpm' - run: | - for rpm_package in ${{ env.PACKAGE_DIRECTORY }}/rpm/SPECS/RPMS/noarch/*.rpm; do - rpmlint --ignore-unused-rpmlintrc --rpmlintrc ${{ env.PACKAGE_DIRECTORY }}/rpm/SPECS/SOURCES/$(${{ env.PRODUCT_LOW }}).rpmlintrc $rpm_package | tee -a RPM_LINT - done - if grep -qE '(W:|E:)' RPM_LINT; then - echo "::warning Noticerpm=rpmlint::$(cat RPM_LINT | awk '/W:/ { ws += 1 } /E:/ { es += 1 } END { print "Warnings:", ws, "Errors:", es }')" - fi diff --git a/.github/workflows/oci-release.yml b/.github/workflows/oci-release.yml deleted file mode 100644 index 4fc3f64435..0000000000 --- a/.github/workflows/oci-release.yml +++ /dev/null @@ -1,73 +0,0 @@ -name: Upload OneСlickInstall scripts on S3 - -on: - push: - branches: - - master - paths: - - 'build/install/OneClickInstall/**' - - 'build/install/docker/**' - workflow_dispatch: - -env: - PRODUCT: $(echo "${{ github.event.repository.name }}" | tr '[:upper:]' '[:lower:]' ) - -jobs: - release: - name: Scripts release - runs-on: ubuntu-latest - env: - DOCKER_DIR: "$GITHUB_WORKSPACE/build/install/docker" - SCRIPT_DIR: "$GITHUB_WORKSPACE/build/install/OneClickInstall" - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Creating an enterprise script - run: | - cp ${{ env.SCRIPT_DIR }}/${{ env.PRODUCT }}-install.sh ${{ env.SCRIPT_DIR }}/${{ env.PRODUCT }}-enterprise-install.sh - sed -i 's/\(PARAMETERS -it\).*";/\1 ENTERPRISE";/' ${{ env.SCRIPT_DIR }}/${{ env.PRODUCT }}-enterprise-install.sh - - - name: Create Docker Tarball - run: | - cd ${{ env.DOCKER_DIR }} - tar -czvf ${{ env.SCRIPT_DIR }}/docker.tar.gz --exclude='config/supervisor*' *.yml .env config/ - - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID_OCI }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY_OCI }} - aws-region: us-east-1 - - - name: Upload scripts - run: | - cd ${{ env.SCRIPT_DIR }} - aws s3 cp . ${{ secrets.AWS_BUCKET_URL_OCI }}/ \ - --recursive \ - --acl public-read \ - --content-type application/x-sh \ - --metadata-directive REPLACE \ - --exclude '*' \ - --include="${{ env.PRODUCT }}-install.sh" \ - --include="${{ env.PRODUCT }}-enterprise-install.sh" \ - --include="install-RedHat.sh" \ - --include="install-RedHat/*" \ - --include="install-Debian.sh" \ - --include="install-Debian/*" \ - --include="install-Docker.sh" \ - --include="docker.tar.gz" - - - name: Invalidate AWS CloudFront cache - run: | - aws cloudfront create-invalidation \ - --distribution-id ${{ secrets.AWS_DISTRIBUTION_ID_OCI }} \ - --paths \ - "/${{ env.PRODUCT }}-install.sh" \ - "/${{ env.PRODUCT }}-enterprise-install.sh" \ - "/install-RedHat.sh" \ - "/install-RedHat/*" \ - "/install-Debian.sh" \ - "/install-Debian/*" \ - "/install-Docker.sh" \ - "/docker.tar.gz" diff --git a/.gitmodules b/.gitmodules index 681950e4c4..8b1dcfb2f8 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,3 @@ -[submodule "products/ASC.Files/Server/DocStore"] - path = products/ASC.Files/Server/DocStore - url = https://github.com/ONLYOFFICE/document-templates - branch = main/community-server [submodule "common/Tests/Frontend.Translations.Tests/dictionaries"] path = common/Tests/Frontend.Translations.Tests/dictionaries url = https://github.com/ONLYOFFICE/dictionaries diff --git a/.nuget/packages/AppLimit.CloudComputing.SharpBox.1.2.0.1.nupkg b/.nuget/packages/AppLimit.CloudComputing.SharpBox.1.2.0.1.nupkg deleted file mode 100644 index ae19042011..0000000000 Binary files a/.nuget/packages/AppLimit.CloudComputing.SharpBox.1.2.0.1.nupkg and /dev/null differ diff --git a/.nuget/packages/Microsoft.Graph.Core.1.6.0.nupkg b/.nuget/packages/Microsoft.Graph.Core.1.6.0.nupkg deleted file mode 100644 index abfaa5913a..0000000000 Binary files a/.nuget/packages/Microsoft.Graph.Core.1.6.0.nupkg and /dev/null differ diff --git a/.nuget/packages/Microsoft.OneDriveSDK.2.1.0.nupkg b/.nuget/packages/Microsoft.OneDriveSDK.2.1.0.nupkg deleted file mode 100644 index eadb74e7f1..0000000000 Binary files a/.nuget/packages/Microsoft.OneDriveSDK.2.1.0.nupkg and /dev/null differ diff --git a/.nuget/packages/Openstack.net.1.8.0.nupkg b/.nuget/packages/Openstack.net.1.8.0.nupkg deleted file mode 100644 index 70b055d1a0..0000000000 Binary files a/.nuget/packages/Openstack.net.1.8.0.nupkg and /dev/null differ diff --git a/.nuget/packages/Rackspace.1.0.0.nupkg b/.nuget/packages/Rackspace.1.0.0.nupkg deleted file mode 100644 index 78c3fc1367..0000000000 Binary files a/.nuget/packages/Rackspace.1.0.0.nupkg and /dev/null differ diff --git a/.nuget/packages/SharpZipLib.1.4.2.nupkg b/.nuget/packages/SharpZipLib.1.4.2.nupkg deleted file mode 100644 index 797c71078e..0000000000 Binary files a/.nuget/packages/SharpZipLib.1.4.2.nupkg and /dev/null differ diff --git a/.nuget/packages/SimpleRESTServicesNET60.1.4.0.nupkg b/.nuget/packages/SimpleRESTServicesNET60.1.4.0.nupkg deleted file mode 100644 index 9178037188..0000000000 Binary files a/.nuget/packages/SimpleRESTServicesNET60.1.4.0.nupkg and /dev/null differ