1. 20 Feb, 2020 2 commits
  2. 19 Feb, 2020 1 commit
  3. 18 Feb, 2020 1 commit
    • Emanuele Aina's avatar
      gitlab-ci: Split the artifacts build and upload stags in smaller stages · b0122549
      Emanuele Aina authored
      The current stage separation is the minimum needed to make the dependencies
      work, splitting things may result in a easier to understand pipeline.
      
      Since we use `needs:` to explicitly track dependencies between jobs,
      adding new stages does not impact the ability of the pipeline to keep the
      runners busy.
      
      The artifacts build stage and the upload one are currently by far the
      largests since they contain a mixed set of different jobs.
      
      This has the drawback that the template files are quite large and that
      it's not easy to track progress across jobs of the same kind using the
      GitLab pipeline diagram, since a lot of them end up in the same, overly
      tall column.
      
      Try to make things slightly more understandable by splitting them in
      smaller chunks, trading vertical scrolling with horizontal scrolling
      in the pipeline diagram. The latter tradeoff is usually bad, but in this
      case it is compensated by having jobs nicely split in boxes by kind.
      Signed-off-by: Emanuele Aina's avatarEmanuele Aina <emanuele.aina@collabora.com>
      b0122549
  4. 17 Feb, 2020 1 commit
  5. 15 Feb, 2020 12 commits
  6. 14 Feb, 2020 2 commits
  7. 12 Feb, 2020 2 commits
    • Emanuele Aina's avatar
      hawkbit-upload: Improve error handling · 8ea14025
      Emanuele Aina authored
      Error from hawkBit are returned with this JSON:
      
          {
            "timestamp": "2020-02-10T13:38:27.023+0000",
            "status": 500,
            "error": "Internal Server Error",
            "message": "org.springframework.jdbc.UncategorizedSQLException: null; uncategorized SQLException; SQL state [28000]; error code [0]; HikariPool-1 - Connection is not available, request timed out after 30020ms.; nested exception is java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30020ms.",
            "path": "/rest/v1/softwaremodules"
          }
      
      The `.errorCode` property the current code was looking for does not exist,
      causing the script to fail silently.
      
      Try instead to look for the `status` optional property, check it is indeed an
      erro and fail only in that case.
      Signed-off-by: Emanuele Aina's avatarEmanuele Aina <emanuele.aina@collabora.com>
      8ea14025
    • Emanuele Aina's avatar
      Default everywhere to v2021dev1 · 06ef5b4d
      Emanuele Aina authored
      Update everything, including the documentation, to point to v2021dev1.
      Signed-off-by: Emanuele Aina's avatarEmanuele Aina <emanuele.aina@collabora.com>
      06ef5b4d
  8. 07 Feb, 2020 3 commits
  9. 04 Feb, 2020 2 commits
  10. 22 Jan, 2020 1 commit
  11. 02 Jan, 2020 1 commit
  12. 20 Dec, 2019 1 commit
  13. 19 Dec, 2019 1 commit
  14. 06 Dec, 2019 1 commit
  15. 04 Dec, 2019 1 commit
  16. 22 Nov, 2019 2 commits
    • Emanuele Aina's avatar
      Jenkinsfile: Add missing def keywords where appropriate · 51fde8c6
      Emanuele Aina authored
      In light of e21ecdb6 fixing an issue caused by a missing `def` that makes a
      variable to be global and thus unwillingly overridden, do a sanity check on the
      whole file and add some missing `def`.
      
      Even if their lack currenly seem harmless, it may prevent issues when moving
      things around.
      Signed-off-by: Emanuele Aina's avatarEmanuele Aina <emanuele.aina@collabora.com>
      51fde8c6
    • Emanuele Aina's avatar
      Jenkinsfile: Fix sysroot index file generation · e21ecdb6
      Emanuele Aina authored
      For a long time we had a race in the sysroot index files generation that
      sometimes caused one of the links contained there to point to the wrong
      architecture, for instance the `armhf` index pointing to `arm64`.
      
      Commit a221b5f4 was an attempt to fix it, but didn't improve the situation.
      Hovewer, it gave us some additional output that we could use to reason a bit
      more about the issue.
      
      For instance, the v2019 20191122.0 job has this in the logs at
      https://jenkins.apertis.org/view/apertis-v2019/job/apertis-v2019/job/images/job/debos-image-build/140/consoleText:
      
          [Pipeline] echo
          sysroot sysroot/v2019/sysroot-apertis-v2019-armhf
          version=v2019 20191122.0
          url=https://images.apertis.org/daily/v2019/20191122.0/arm64/sysroot/sysroot-apertis-v2019-arm64-20191122.0.tar.gz
      
      The relevant code:
          sysrootname = "sysroot-${osname}-${release}-${architecture}-${env.PIPELINE_VERSION}"
          sysrooturl = "${image_url_prefix}/daily/${release}/${env.PIPELINE_VERSION}/${architecture}/sysroot/${sysrootname}.tar.gz"
          sh(script: """
              cd ${PIPELINE_VERSION}/${architecture}/${type}
              debos ${debosarguments} \
                --show-boot \
                -t architecture:${architecture} \
                -t ospack:ospack_${release}-${architecture}-${type}_${PIPELINE_VERSION} \
                -t sysroot:${sysrootname} \
                ${WORKSPACE}/${osname}-sysroot.yaml; \
              """)
      
          // Generate sysroot metadata
          def metadata_file = "sysroot/${release}/sysroot-${osname}-${release}-${architecture}"
          def metadata_contents = "version=${release} ${PIPELINE_VERSION}\nurl=${sysrooturl}\n"
          echo "sysroot ${metadata_file}\n${metadata_contents}"
          writeFile file: metadata_file, text: metadata_contents
      
      From the output we can conclude that `metadata_file` is correct, while
      `metadata_contents` has the wrong arch, which comes from `sysrooturl`.
      
      Note the lack of `def` before `sysrooturl`. That means that Groovy is creating
      a **global** variable. So every time the stage is run, the shared global
      variable is overridden: in this case, the stage is run for `armhf` first and
      before it reaches the `Generate sysroot metadata` section the `arm64` stage is
      run as well, overridding `sysrooturl`.
      
      Adding a `def` there should finally fix this longstanding issue.
      
      See https://phabricator.apertis.org/T6317 for more details.
      Signed-off-by: Emanuele Aina's avatarEmanuele Aina <emanuele.aina@collabora.com>
      e21ecdb6
  17. 18 Nov, 2019 2 commits
  18. 04 Nov, 2019 1 commit
  19. 23 Oct, 2019 1 commit
  20. 11 Oct, 2019 1 commit
  21. 09 Oct, 2019 1 commit