[Notes] [Git][BuildStream/buildstream][jjardon/ci_show_timings] 8 commits: .gitlab-ci.yml: Verify that source tarball installs correctly



Title: GitLab

Tristan Van Berkom pushed to branch jjardon/ci_show_timings at BuildStream / buildstream

Commits:

5 changed files:

Changes:

  • .gitlab-ci.yml
    ... ... @@ -36,6 +36,11 @@ source_dist:
    36 36
       - tar -ztf dist/*
    
    37 37
       - tarball=$(cd dist && echo $(ls *))
    
    38 38
     
    
    39
    +  # Verify that the source distribution tarball can be installed correctly
    
    40
    +  #
    
    41
    +  - pip3 install dist/*.tar.gz
    
    42
    +  - bst --version
    
    43
    +
    
    39 44
       # unpack tarball as `dist/buildstream` directory
    
    40 45
       - |
    
    41 46
         cat > dist/unpack.sh << EOF
    
    ... ... @@ -78,7 +83,7 @@ source_dist:
    78 83
     
    
    79 84
       # Run the tests from the source distribution, We run as a simple
    
    80 85
       # user to test for permission issues
    
    81
    -  - su buildstream -c 'python3 setup.py test --index-url invalid://uri --addopts --integration'
    
    86
    +  - su buildstream -c 'python3 setup.py test --index-url invalid://uri --addopts "--integration --durations=20"'
    
    82 87
     
    
    83 88
       # Go back to the toplevel and collect our reports
    
    84 89
       - cd ../..
    
    ... ... @@ -132,7 +137,7 @@ tests-unix:
    132 137
         - cd dist && ./unpack.sh && cd buildstream
    
    133 138
     
    
    134 139
         # Since the unix platform is required to run as root, no user change required
    
    135
    -    - python3 setup.py test --index-url invalid://uri --addopts --integration
    
    140
    +    - python3 setup.py test --index-url invalid://uri --addopts "--integration --durations=20"
    
    136 141
     
    
    137 142
         # Go back to the toplevel and collect our reports
    
    138 143
         - cd ../..
    

  • tests/integration/project/elements/base/base-alpine.bst
    ... ... @@ -7,6 +7,6 @@ description: |
    7 7
     
    
    8 8
     sources:
    
    9 9
       - kind: tar
    
    10
    -    url: sysroot:tarballs/integration-tests-base.v1.x86_64.tar.xz
    
    10
    +    url: alpine:integration-tests-base.v1.x86_64.tar.xz
    
    11 11
         base-dir: ''
    
    12 12
         ref: 3eb559250ba82b64a68d86d0636a6b127aa5f6d25d3601a79f79214dc9703639

  • tests/integration/project/project.conf
    ... ... @@ -2,7 +2,7 @@
    2 2
     name: test
    
    3 3
     element-path: elements
    
    4 4
     aliases:
    
    5
    -  sysroot: https://gnome7.codethink.co.uk/
    
    5
    +  alpine: https://gnome7.codethink.co.uk/tarballs/
    
    6 6
       project_dir: file://{project_dir}
    
    7 7
     options:
    
    8 8
       linux:
    

  • tests/integration/source-determinism.py
    ... ... @@ -2,7 +2,8 @@ import os
    2 2
     import pytest
    
    3 3
     
    
    4 4
     from buildstream import _yaml, utils
    
    5
    -from tests.testutils import cli, create_repo, ALL_REPO_KINDS
    
    5
    +from tests.testutils import create_repo, ALL_REPO_KINDS
    
    6
    +from tests.testutils import cli_integration as cli
    
    6 7
     
    
    7 8
     
    
    8 9
     DATA_DIR = os.path.join(
    
    ... ... @@ -28,7 +29,7 @@ def create_test_directory(*path, mode=0o644):
    28 29
     @pytest.mark.integration
    
    29 30
     @pytest.mark.datafiles(DATA_DIR)
    
    30 31
     @pytest.mark.parametrize("kind", [(kind) for kind in ALL_REPO_KINDS] + ['local'])
    
    31
    -def test_deterministic_source_umask(cli, tmpdir, datafiles, kind):
    
    32
    +def test_deterministic_source_umask(cli, tmpdir, datafiles, kind, integration_cache):
    
    32 33
         project = str(datafiles)
    
    33 34
         element_name = 'list'
    
    34 35
         element_path = os.path.join(project, 'elements', element_name)
    
    ... ... @@ -91,14 +92,16 @@ def test_deterministic_source_umask(cli, tmpdir, datafiles, kind):
    91 92
                     return f.read()
    
    92 93
             finally:
    
    93 94
                 os.umask(old_umask)
    
    94
    -            cli.remove_artifact_from_cache(project, element_name)
    
    95
    +            cache_dir = os.path.join(integration_cache, 'artifacts')
    
    96
    +            cli.remove_artifact_from_cache(project, element_name,
    
    97
    +                                           cache_dir=cache_dir)
    
    95 98
     
    
    96 99
         assert get_value_for_umask(0o022) == get_value_for_umask(0o077)
    
    97 100
     
    
    98 101
     
    
    99 102
     @pytest.mark.integration
    
    100 103
     @pytest.mark.datafiles(DATA_DIR)
    
    101
    -def test_deterministic_source_local(cli, tmpdir, datafiles):
    
    104
    +def test_deterministic_source_local(cli, tmpdir, datafiles, integration_cache):
    
    102 105
         """Only user rights should be considered for local source.
    
    103 106
         """
    
    104 107
         project = str(datafiles)
    
    ... ... @@ -150,6 +153,8 @@ def test_deterministic_source_local(cli, tmpdir, datafiles):
    150 153
                 with open(os.path.join(checkoutdir, 'ls-l'), 'r') as f:
    
    151 154
                     return f.read()
    
    152 155
             finally:
    
    153
    -            cli.remove_artifact_from_cache(project, element_name)
    
    156
    +            cache_dir = os.path.join(integration_cache, 'artifacts')
    
    157
    +            cli.remove_artifact_from_cache(project, element_name,
    
    158
    +                                           cache_dir=cache_dir)
    
    154 159
     
    
    155 160
         assert get_value_for_mask(0o7777) == get_value_for_mask(0o0700)

  • tests/testutils/runcli.py
    ... ... @@ -198,8 +198,10 @@ class Cli():
    198 198
             for key, val in config.items():
    
    199 199
                 self.config[key] = val
    
    200 200
     
    
    201
    -    def remove_artifact_from_cache(self, project, element_name):
    
    202
    -        cache_dir = os.path.join(project, 'cache', 'artifacts')
    
    201
    +    def remove_artifact_from_cache(self, project, element_name,
    
    202
    +                                   *, cache_dir=None):
    
    203
    +        if not cache_dir:
    
    204
    +            cache_dir = os.path.join(project, 'cache', 'artifacts')
    
    203 205
     
    
    204 206
             cache_dir = os.path.join(cache_dir, 'cas', 'refs', 'heads')
    
    205 207
     
    



  • [Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]