CI/CD

GitLab CI integration

Wire AEON conformance campaigns into .gitlab-ci.yml with masked variables, JUnit reports in merge requests, and scheduled nightly pipelines.

5 min read

.gitlab-ci.ymlyaml
stages: [build, conformance]

variables:
  AEON_VERSION: "1.12.3"

.aeon: &aeon
  image: ghcr.io/aeon-cloud/cli:1.12.3
  before_script: [ "aeon whoami" ]

conformance:smoke:
  <<: *aeon
  stage: conformance
  script:
    - aeon builds push ./dist/ue.tar.gz --tag "$CI_COMMIT_SHA"
    - aeon exec run --campaign smoke --build "$CI_COMMIT_SHA" --wait --exit-code --quiet
    - aeon reports get --build "$CI_COMMIT_SHA" --format junit --output junit.xml
  artifacts:
    when: always
    reports:
      junit: junit.xml

conformance:nightly:
  <<: *aeon
  stage: conformance
  rules: [ { if: '$CI_PIPELINE_SOURCE == "schedule"' } ]
  script:
    - aeon exec run --campaign nightly --build main --lanes 8 --wait --quiet

noteStore AEON_TOKEN as a masked, protected CI/CD variable. Never echo it in a script step.

Run this against a real SDR lane

The tester is a service, not a box. Push a build, reserve a lane, get a verdict.