Skip to content
Snippets Groups Projects
  1. Jul 19, 2021
  2. Jun 24, 2021
  3. Jun 18, 2021
  4. May 24, 2021
    • Sergey Bronnikov's avatar
      tools: fix script to run jepsen tests · 4fea6bf8
      Sergey Bronnikov authored
      Script used to run Jepsen tests uses Terraform to prepare test environment.
      When I made this script I had a wrong assumption about working directory
      used by Terraform. Due to this sometimes job with Jepsen tests
      failed on cleanup with message:
      
      ```
      Error: Could not load plugin
      
      Plugin reinitialization required. Please run "terraform init".
      
      Plugins are external binaries that Terraform uses to access and manipulate
      resources. The configuration provided requires plugins which can't be located,
      don't satisfy the version constraints, or are otherwise incompatible.
      
      Terraform automatically discovers provider requirements from your
      configuration, including providers used in child modules. To see the
      requirements and constraints, run "terraform providers".
      
      Failed to instantiate provider
      "registry.terraform.io/terraform-providers/openstack" to obtain schema:
      unknown provider "registry.terraform.io/terraform-providers/openstack"
      ```
      
      Terraform documentation describes how Terraform uses working directories [1]
      and there are at least to ways to resolve an issue. First one is using always
      one directory before running terraform subcommands. Second one is using option
      `-chdir` in all terraform commands [2].
      
      1. https://www.terraform.io/docs/cli/init/index.html
      2. https://www.terraform.io/docs/cli/commands/index.html#switching-working-directory-with-chdir
      
      Closes #6089
      4fea6bf8
  5. Apr 19, 2021
    • Igor Munkin's avatar
      tools: implement toolchain for crash artefacts · e733f08d
      Igor Munkin authored
      
      This patch introduces two scripts to ease crash artefacts collecting and
      loading for postmortem analysis:
      
      * tarabrt.sh - the tool collecting a tarball with the crash artefacts
        the right way: the coredump with the binary, all loaded shared libs,
        Tarantool version (this is a separate exercise to get it from the
        binary built with -O2). Besides, the tarball has a unified layout, so
        it can be easily processed with the second script:
        - /coredump - core dump file on the root level
        - /binary - tarantool executable on the root level
        - /version - plain text file on the root level with
          `tarantool --version` output
        - /checklist - plain text file on the root level with the list of the
          collected entities
        - /etc/os-release - the plain text file containing operating system
          identification data
        - all shared libraries used by the crashed instance - their layout
          respects the one on the host machine, so they can be easily loaded
          with the following gdb command: set sysroot $(realpath .)
      
        The script can be easily used either manually or via
        kernel.core_pattern variable.
      
      * gdb.sh - the auxiliary script originally written by @Totktonada, but
        needed to be adjusted to the crash artefacts layout every time. Since
        there is a unified layout, the original script is enhanced a bit to
        automatically load the coredump via gdb the right way.
      
      Closes #5569
      
      Reviewed-by: default avatarAlexander Turenko <alexander.turenko@tarantool.org>
      Reviewed-by: default avatarSergey Bronnikov <sergeyb@tarantool.org>
      Signed-off-by: default avatarIgor Munkin <imun@tarantool.org>
      Unverified
      e733f08d
  6. Apr 08, 2021
    • Alexander V. Tikhonov's avatar
      github-ci: enable ubuntu-20.04 hosts for packaging · 431c043a
      Alexander V. Tikhonov authored
      Enabling ubuntu-20.04 hosts for packaging workflows found that DEB
      package Github Actions workflows do not need to install createrepo
      tool. Also found that createrepo is not ready for ubuntu-20.04 as
      described in (till ubuntu-21.04 where it is available as the new
      version of this tool named as 'createrepo_c' as DEB package):
      
        3a7c2102 ('github-ci: ubuntu-20.04 misses createrepo package')
      
      To fix it added 'createrepo_c' build and installation from sources
      and changed in update_repo tool 'createrepo' tool to 'createrepo_c'.
      This patch is needed to use these workflows on self-hosted runners
      which run under ubuntu-20.04 by default for now.
      
      Also checking the patch on ubuntu-20.04 hosts got the following issue:
      
        Regenerated DEB file: pool/xenial/main/t/tarantool/tarantool-common_2.8.0.185.g4c3e0eb-1_all.deb
      
        <botocore.awsrequest.AWSRequest object at 0x7f7998a4ca90>
      
        <botocore.awsrequest.AWSRequest object at 0x7f627d965070>
        make: *** [.gitlab.mk:131: deploy] Error 255
        Error: Process completed with exit code 2.
      
      Found that there is already issue exists in Github Actions on it [1].
      Provided solution to setup AWS region in environment helped to
      workaround the issue [2].
      
      Closes tarantool/tarantool-qa#110
      Closes tarantool/tarantool-qa#111
      
      [1]: https://github.com/aws/aws-cli/issues/5234
      [2]: https://github.com/aws/aws-cli/issues/5234#issuecomment-635459464
      431c043a
  7. Apr 07, 2021
  8. Mar 15, 2021
    • Sergey Bronnikov's avatar
      travis: switch to Python 3 version · 17040677
      Sergey Bronnikov authored
      - install python3 on mac machines
      - run test-run without specifying path to python interpreter
      - get rid our own tarantool brew-tap that depends on Python 2
      
      Part of #5652
      17040677
  9. Feb 18, 2021
    • Alexander V. Tikhonov's avatar
      jepsen: correct jepsen setup/run script · f2cdc3bc
      Alexander V. Tikhonov authored
      Found issues and resolved:
      
      - Added '$PROJECT_BINARY_DIR/build/' path creation before use.
      
      - Set always ssh-agent restart before add new SSH key, because
        found that in some situations it may fail to add w/o it.
      
      - Found mistake in TF_VAR_id variable setup, inverted ${CI_JOB_ID}
        variable check for it.
      
      Also made improvements in script:
      
      - Added all needed checks for all externally set mandatory variables.
      
      - Added usage message with the list of mandatory and optional variables.
      
      - Added comments to all script steps.
      
      - Added step with checking nodes that they are reachable by SSH.
      f2cdc3bc
  10. Feb 12, 2021
  11. Jan 25, 2021
  12. Dec 28, 2020
  13. Dec 24, 2020
    • Alexander V. Tikhonov's avatar
      update_repo: add Fedora 32 · 78c1de32
      Alexander V. Tikhonov authored
      It was added Fedora 32 gitlab-ci packaging job in commit:
        507c47f7a829581cc53ba3c4bd6a5191d088cdf ("gitlab-ci: add packaging for Fedora 32")
      
      but also it had to be enabled in update_repo tool to make able to save
      packages in S3 buckets.
      
      Follows up #4966
      78c1de32
  14. Nov 26, 2020
  15. Oct 30, 2020
    • Sergey Bronnikov's avatar
      gitlab-ci: enhance jobs with jepsen tests · 4ab0ddcc
      Sergey Bronnikov authored
      To run Jepsen tests in different configurations we need to parametrize run
      script by options, so lein options and number of nodes passed with environment
      variables. By default script runs testing with Tarantool built from latest
      commit.
      
      Added these configurations:
      
      - single instance
      - single instance with enabled TXM
      - cluster with enabled Raft
      - cluster with enabled Raft and TXM
      
      Closes #5437
      4ab0ddcc
  16. Sep 18, 2020
    • Sergey Bronnikov's avatar
      tools: add script to run Jepsen tests · 49bca315
      Sergey Bronnikov authored
      Main script that handle creation of set of virtual machines
      using Terraform, setup for remote connection, running
      Jepsen tests and teardown test environment.
      
      Part of #5277
      49bca315
  17. Aug 31, 2020
  18. Jul 14, 2020
  19. May 20, 2020
  20. May 01, 2020
  21. Apr 15, 2020
    • Alexander V. Tikhonov's avatar
      Added ability to remove packages from S3 · d6c50af1
      Alexander V. Tikhonov authored
      Added ability to remove given in options package from S3. TO remove the
      needed package need to set '-r=<package name with version>' option,
      like:
        ./tools/update_repo.sh -o=<OS> -d=<DIST> -b=<S3 repo> \
          -r=tarantool-2.2.2.0
      it will remove all found appropriate source and binaries packages from
      the given S3 repository, also the meta files will be corrected there.
      
      Close #4839
      d6c50af1
    • Alexander.V Tikhonov's avatar
      Add help instruction on 'product' option · cccc989c
      Alexander.V Tikhonov authored
      Added instructions on 'product' option with examples.
      
      Part of #4839
      cccc989c
    • Alexander.V Tikhonov's avatar
      Enable script for saving packages in S3 for modules · 4527a4da
      Alexander.V Tikhonov authored
      Found that modules may have only binaries packages w/o sources
      packages. Script changed to be able to work with only binaries
      either sources packages.
      
      Part of #4839
      4527a4da
    • Alexander V. Tikhonov's avatar
      Add metafiles cleanup routines at S3 pack script · ed491409
      Alexander V. Tikhonov authored
      Added cleanup functionality for the meta files.
      Script may have the following situations:
      
       - package files removed at S3, but it still registered:
         Script stores and registers the new packages at S3 and
         removes all the other registered blocks for the sames
         files in meta files.
      
       - package files already exists at S3 with the same hashes:
         Script passes it with warning message.
      
       - package files already exists at S3 with the old hashes:
         Script fails w/o force flag, otherwise it stores and
         registers the new packages at S3 and removes all the other
         registered blocks for the sames files in meta files.
      
      Added '-s|skip_errors' option flag to skip errors on changed
      packages to avoid of exits on script run.
      
      Part of #4839
      ed491409
  22. Mar 26, 2020
    • Alexander V. Tikhonov's avatar
      test: fix OSX host setup · a41bef3b
      Alexander V. Tikhonov authored
      Fixed OSX host setup for Tarantool build:
      - set brew installation from Homebrew repository instructions;
      - set in use Python 2 latest commit from tapped local formula,
        since Python 2 is EOL, also removed extra pip installation with
        get-pip script, because tapped formula installs pip itself.
        python@2 was deleted from homebrew/core in commit 028f11f9e:
          python@2: delete (https://github.com/Homebrew/homebrew-core/issues/49796)
          EOL 1 January 2020.
        Tapped formula created from the latest formula before its removal:
          git -C "$(brew --repo homebrew/core)" show 028f11f9e^:Formula/python@2.rb
      - added upgrade packages call to avoid of fails on already
        installed packages, but with previous version;
      - fixed the gitlab-ci configuration for sudo on testing hosts and removed pip
        option '--user' to avoid of use the users paths with special setup for it.
      
      Fixed OSX host setup for Tarantool test:
      - set maximum processes limit value to 2500 for testing process;
      - new Mac machines are going to be added into CI and usernames on them
        are long according to internal policies. It makes a home directory to
        be long too and so a path to a unix socket created during testing can
        be longer then UNIX_PATH_MAX=108 constant which is described as issue
          https://github.com/tarantool/tarantool/issues/4634
        To avoid of it the short working directory for testing set by option:
          --vardir /tmp/tnt
      a41bef3b
  23. Feb 21, 2020
    • Alexander V. Tikhonov's avatar
      gitlab-ci: adjust base URL of RPM/Deb repositories · 4dee6890
      Alexander V. Tikhonov authored
      Our S3 based repositories now reflect packagecloud.io repositories
      structure.
      
      It will allow us to migrate from packagecloud.io w/o much complicating
      redirection rules on a web server serving download.tarantool.org.
      
      Deploy source packages (*.src.rpm) into separate 'SRPM' repository
      like packagecloud.io does.
      
      Changed repository signing key from its subkey to public and moved it
      to gitlab-ci environment.
      
      Follows up #3380
      Unverified
      4dee6890
  24. Feb 20, 2020
  25. Feb 04, 2020
    • Alexander V. Tikhonov's avatar
      gitlab-ci: push Deb/RPM packages to S3 based repos · 05d3ed4b
      Alexander V. Tikhonov authored
      We're going to use S3 compatible storage for Deb and RPM repositories
      instead of packagecloud.io service. The main reason is that
      packagecloud.io provides a limited amount of storage, which is not
      enough for keeping all packages (w/o regular pruning of old versions).
      
      Note: At the moment packages are still pushed to packagecloud.io from
      Travis-CI. Disabling this is out of scope of this patch.
      
      This patch implements saving of packages on an S3 compatible storage and
      regeneration of a repository metadata.
      
      The layout is a bit different from one we have on packagecloud.io.
      
      packagecloud.io:
      
       | - 1.10
       | - 2.1
       | - 2.2
       | - ...
      
      S3 compatible storage:
      
       | - live
       |   - 1.10
       |   - 2.1
       |   - 2.2
       |   - ...
       | - release
       |   - 1.10
       |   - 2.1
       |   - 2.2
       |   - ...
      
      Both 'live' and 'release' repositories track release branches (named as
      <major>.<minor>) and master branch. The difference is that 'live' is
      updated on every push, but 'release' is only for tagged versions
      (<major>.<minor>.<patch>.0).
      
      Packages are also built on '*-full-ci' branches, but only for testing
      purposes: they don't pushed anywhere.
      
      The core logic is in the tools/update_repo.sh script, which implements
      the following flow:
      
      - create metadata for new packages
      - fetch relevant metadata from the S3 storage
      - push new packages to the S3 storage
      - merge and push the updated metadata to the S3 storage
      
      The script uses 'createrepo' for RPM repositories and 'reprepro' for Deb
      repositories.
      
      Closes #3380
      Unverified
      05d3ed4b
Loading