diff mbox series

[v1,3/8] gitlab: add special rule for the hexagon container

Message ID 20210520174303.12310-4-alex.bennee@linaro.org
State Superseded
Headers show
Series various misc fixes (gitlab, gdbstub, plugins) | expand

Commit Message

Alex Bennée May 20, 2021, 5:42 p.m. UTC
The hexagon container is always manually built but of course not
everyone will be building it themselves and pushing to their
registries. We still need to create a "local" registry copy for the
actual gitlab tests to run. We don't build it in this case, just pull
it across from the upstream registry. We disable this rule from
running on the qemu-project itself so it doesn't accidentally wipe out
our master copy.

Fixes: 910c40ee94 ("gitlab: add build-user-hexagon test")
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

Tested-by: Cornelia Huck <cohuck@redhat.com>

Reviewed-by: Willian Rampazzo <willianr@redhat.com>

Cc: Cornelia Huck <cohuck@redhat.com>

---
v2
  - fix silly typo
---
 .gitlab-ci.d/containers.yml | 27 +++++++++++++++++++++++++++
 .gitlab-ci.yml              |  2 ++
 2 files changed, 29 insertions(+)

-- 
2.20.1

Comments

Philippe Mathieu-Daudé May 25, 2021, 3:54 a.m. UTC | #1
On 5/20/21 7:42 PM, Alex Bennée wrote:
> The hexagon container is always manually built but of course not

> everyone will be building it themselves and pushing to their

> registries. We still need to create a "local" registry copy for the

> actual gitlab tests to run. We don't build it in this case, just pull

> it across from the upstream registry. We disable this rule from

> running on the qemu-project itself so it doesn't accidentally wipe out

> our master copy.

> 

> Fixes: 910c40ee94 ("gitlab: add build-user-hexagon test")

> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

> Tested-by: Cornelia Huck <cohuck@redhat.com>

> Reviewed-by: Willian Rampazzo <willianr@redhat.com>

> Cc: Cornelia Huck <cohuck@redhat.com>

> 

> ---

> v2

>   - fix silly typo

> ---

>  .gitlab-ci.d/containers.yml | 27 +++++++++++++++++++++++++++

>  .gitlab-ci.yml              |  2 ++

>  2 files changed, 29 insertions(+)


Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Philippe Mathieu-Daudé May 25, 2021, 9:40 a.m. UTC | #2
On 5/20/21 7:42 PM, Alex Bennée wrote:
> The hexagon container is always manually built but of course not

> everyone will be building it themselves and pushing to their

> registries. We still need to create a "local" registry copy for the

> actual gitlab tests to run. We don't build it in this case, just pull

> it across from the upstream registry. We disable this rule from

> running on the qemu-project itself so it doesn't accidentally wipe out

> our master copy.

> 

> Fixes: 910c40ee94 ("gitlab: add build-user-hexagon test")

> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

> Tested-by: Cornelia Huck <cohuck@redhat.com>

> Reviewed-by: Willian Rampazzo <willianr@redhat.com>

> Cc: Cornelia Huck <cohuck@redhat.com>

> 

> ---

> v2

>   - fix silly typo

> ---

>  .gitlab-ci.d/containers.yml | 27 +++++++++++++++++++++++++++

>  .gitlab-ci.yml              |  2 ++

>  2 files changed, 29 insertions(+)

> 

> diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml

> index 3fb3c14f06..088c7e68c3 100644

> --- a/.gitlab-ci.d/containers.yml

> +++ b/.gitlab-ci.d/containers.yml

> @@ -101,6 +101,33 @@ armhf-debian-cross-container:

>    variables:

>      NAME: debian-armhf-cross

>  

> +# We never want to build hexagon in the CI system and by default we

> +# always want to refer to the master registry where it lives.

> +hexagon-cross-container:

> +  image: docker:stable

> +  stage: containers

> +  except:

> +    variables:

> +      - $CI_PROJECT_NAMESPACE == 'qemu-project'


FYI Daniel said we should be consistent and use the 'rules:' syntax:
https://lists.gnu.org/archive/html/qemu-devel/2021-05/msg07308.html

> +  variables:

> +    NAME: debian-hexagon-cross

> +    GIT_DEPTH: 1

> +  services:

> +    - docker:dind

> +  before_script:

> +    - export TAG="$CI_REGISTRY_IMAGE/qemu/$NAME:latest"

> +    - export COMMON_TAG="$CI_REGISTRY/qemu-project/qemu/qemu/$NAME:latest"

> +    - docker info

> +    - docker login $CI_REGISTRY -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD"

> +  script:

> +    - echo "TAG:$TAG"

> +    - echo "COMMON_TAG:$COMMON_TAG"

> +    - docker pull $COMMON_TAG

> +    - docker tag $COMMON_TAG $TAG

> +    - docker push "$TAG"

> +  after_script:

> +    - docker logout

> +

>  hppa-debian-cross-container:

>    extends: .container_job_template

>    stage: containers-layer2

> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml

> index f718b61fa7..b2f929c758 100644

> --- a/.gitlab-ci.yml

> +++ b/.gitlab-ci.yml

> @@ -421,6 +421,8 @@ build-user-static:

>  # declared. The image is manually uploaded.

>  build-user-hexagon:

>    extends: .native_build_job_template

> +  needs:

> +    job: hexagon-cross-container

>    variables:

>      IMAGE: debian-hexagon-cross

>      TARGETS: hexagon-linux-user

>
Philippe Mathieu-Daudé May 25, 2021, 11:25 a.m. UTC | #3
On 5/25/21 11:40 AM, Philippe Mathieu-Daudé wrote:
> On 5/20/21 7:42 PM, Alex Bennée wrote:

>> The hexagon container is always manually built but of course not

>> everyone will be building it themselves and pushing to their

>> registries. We still need to create a "local" registry copy for the

>> actual gitlab tests to run. We don't build it in this case, just pull

>> it across from the upstream registry. We disable this rule from

>> running on the qemu-project itself so it doesn't accidentally wipe out

>> our master copy.

>>

>> Fixes: 910c40ee94 ("gitlab: add build-user-hexagon test")

>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

>> Tested-by: Cornelia Huck <cohuck@redhat.com>

>> Reviewed-by: Willian Rampazzo <willianr@redhat.com>

>> Cc: Cornelia Huck <cohuck@redhat.com>

>>

>> ---

>> v2

>>   - fix silly typo

>> ---

>>  .gitlab-ci.d/containers.yml | 27 +++++++++++++++++++++++++++

>>  .gitlab-ci.yml              |  2 ++

>>  2 files changed, 29 insertions(+)

>>

>> diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml

>> index 3fb3c14f06..088c7e68c3 100644

>> --- a/.gitlab-ci.d/containers.yml

>> +++ b/.gitlab-ci.d/containers.yml

>> @@ -101,6 +101,33 @@ armhf-debian-cross-container:

>>    variables:

>>      NAME: debian-armhf-cross

>>  

>> +# We never want to build hexagon in the CI system and by default we

>> +# always want to refer to the master registry where it lives.

>> +hexagon-cross-container:

>> +  image: docker:stable

>> +  stage: containers

>> +  except:

>> +    variables:

>> +      - $CI_PROJECT_NAMESPACE == 'qemu-project'

> 

> FYI Daniel said we should be consistent and use the 'rules:' syntax:

> https://lists.gnu.org/archive/html/qemu-devel/2021-05/msg07308.html


Since our rule set default to 'always', this should be:

  rules:
    - if: '$CI_PROJECT_NAMESPACE == "qemu-project"'
      when: always
    - when: never
Alex Bennée May 25, 2021, 3:06 p.m. UTC | #4
Philippe Mathieu-Daudé <f4bug@amsat.org> writes:

> On 5/25/21 11:40 AM, Philippe Mathieu-Daudé wrote:

>> On 5/20/21 7:42 PM, Alex Bennée wrote:

>>> The hexagon container is always manually built but of course not

>>> everyone will be building it themselves and pushing to their

>>> registries. We still need to create a "local" registry copy for the

>>> actual gitlab tests to run. We don't build it in this case, just pull

>>> it across from the upstream registry. We disable this rule from

>>> running on the qemu-project itself so it doesn't accidentally wipe out

>>> our master copy.

>>>

>>> Fixes: 910c40ee94 ("gitlab: add build-user-hexagon test")

>>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

>>> Tested-by: Cornelia Huck <cohuck@redhat.com>

>>> Reviewed-by: Willian Rampazzo <willianr@redhat.com>

>>> Cc: Cornelia Huck <cohuck@redhat.com>

>>>

>>> ---

>>> v2

>>>   - fix silly typo

>>> ---

>>>  .gitlab-ci.d/containers.yml | 27 +++++++++++++++++++++++++++

>>>  .gitlab-ci.yml              |  2 ++

>>>  2 files changed, 29 insertions(+)

>>>

>>> diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml

>>> index 3fb3c14f06..088c7e68c3 100644

>>> --- a/.gitlab-ci.d/containers.yml

>>> +++ b/.gitlab-ci.d/containers.yml

>>> @@ -101,6 +101,33 @@ armhf-debian-cross-container:

>>>    variables:

>>>      NAME: debian-armhf-cross

>>>  

>>> +# We never want to build hexagon in the CI system and by default we

>>> +# always want to refer to the master registry where it lives.

>>> +hexagon-cross-container:

>>> +  image: docker:stable

>>> +  stage: containers

>>> +  except:

>>> +    variables:

>>> +      - $CI_PROJECT_NAMESPACE == 'qemu-project'

>> 

>> FYI Daniel said we should be consistent and use the 'rules:' syntax:

>> https://lists.gnu.org/archive/html/qemu-devel/2021-05/msg07308.html

>

> Since our rule set default to 'always', this should be:

>

>   rules:

>     - if: '$CI_PROJECT_NAMESPACE == "qemu-project"'

>       when: always

>     - when: never


Other way around.

-- 
Alex Bennée
diff mbox series

Patch

diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml
index 3fb3c14f06..088c7e68c3 100644
--- a/.gitlab-ci.d/containers.yml
+++ b/.gitlab-ci.d/containers.yml
@@ -101,6 +101,33 @@  armhf-debian-cross-container:
   variables:
     NAME: debian-armhf-cross
 
+# We never want to build hexagon in the CI system and by default we
+# always want to refer to the master registry where it lives.
+hexagon-cross-container:
+  image: docker:stable
+  stage: containers
+  except:
+    variables:
+      - $CI_PROJECT_NAMESPACE == 'qemu-project'
+  variables:
+    NAME: debian-hexagon-cross
+    GIT_DEPTH: 1
+  services:
+    - docker:dind
+  before_script:
+    - export TAG="$CI_REGISTRY_IMAGE/qemu/$NAME:latest"
+    - export COMMON_TAG="$CI_REGISTRY/qemu-project/qemu/qemu/$NAME:latest"
+    - docker info
+    - docker login $CI_REGISTRY -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD"
+  script:
+    - echo "TAG:$TAG"
+    - echo "COMMON_TAG:$COMMON_TAG"
+    - docker pull $COMMON_TAG
+    - docker tag $COMMON_TAG $TAG
+    - docker push "$TAG"
+  after_script:
+    - docker logout
+
 hppa-debian-cross-container:
   extends: .container_job_template
   stage: containers-layer2
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f718b61fa7..b2f929c758 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -421,6 +421,8 @@  build-user-static:
 # declared. The image is manually uploaded.
 build-user-hexagon:
   extends: .native_build_job_template
+  needs:
+    job: hexagon-cross-container
   variables:
     IMAGE: debian-hexagon-cross
     TARGETS: hexagon-linux-user