# SPDX-FileCopyrightText: 2021 Heiko Schaefer # SPDX-FileCopyrightText: 2021 Nora Widdecke # SPDX-License-Identifier: CC0-1.0 stages: - hw-builddeps - hw-import - hw-keygen - lint - test - virtual-test reuse: stage: lint image: name: fsfe/reuse:latest entrypoint: [""] script: - reuse lint cargo-fmt: stage: lint image: rust:latest script: - rustup component add rustfmt - cargo fmt -- --check cargo-test: stage: test image: rust:latest before_script: - mkdir -p /run/user/$UID - apt update -y -qq - apt install -y -qq --no-install-recommends git clang make pkg-config nettle-dev libssl-dev capnproto ca-certificates libpcsclite-dev - apt clean script: - cargo test cargo-test-debian-stable: stage: test image: debian:stable before_script: - mkdir -p /run/user/$UID - apt update -y -qq - apt install -y -qq --no-install-recommends git rustc cargo clang make pkg-config nettle-dev libssl-dev capnproto ca-certificates libpcsclite-dev - apt clean script: - cargo test run_cardtest_smartpgp: stage: virtual-test image: registry.gitlab.com/hkos/openpgp-card-images/smartpgp-builddeps script: - /etc/init.d/pcscd start - su - -c "sh /home/jcardsim/run-card.sh" jcardsim - cd card-functionality - cargo run --bin import -- $CONFIG - cargo run --bin keygen -- $CONFIG variables: CONFIG: "docker/test-smartpgp.toml" run_cardtest_ykneo: stage: virtual-test image: registry.gitlab.com/hkos/openpgp-card-images/ykneo-builddeps script: - /etc/init.d/pcscd start - su - -c "sh /home/jcardsim/run-card.sh" jcardsim - cd card-functionality - cargo run --bin import -- $CONFIG - cargo run --bin keygen -- $CONFIG variables: CONFIG: "docker/test-ykneo.toml" hardware-builddeps: stage: hw-builddeps needs: [] image: docker:stable services: - docker:dind before_script: - docker info - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY script: - docker pull $IMAGE_LATEST || true - docker build --cache-from $IMAGE_LATEST --file=$DOCKERFILE -t $IMAGE_LATEST -t $IMAGE_SHA . - docker push $IMAGE_SHA - docker push $IMAGE_LATEST only: changes: - card-functionality/docker/Dockerfile.hardware-builddeps - .gitlab-ci.yml variables: IMAGE_LATEST: $CI_REGISTRY_IMAGE/hardware-builddeps:latest IMAGE_SHA: $CI_REGISTRY_IMAGE/hardware-builddeps:$CI_COMMIT_SHA DOCKERFILE: card-functionality/docker/Dockerfile.hardware-builddeps .hw-test-template: image: registry.gitlab.com/hkos/openpgp-card/hardware-builddeps tags: - card parallel: matrix: - CONFIG: - "ci/basic-2_1.toml" - "ci/nitro-pro1.toml" - "ci/nitro-pro2.toml" - "ci/nitro-start.toml" script: - /etc/init.d/pcscd start #- sleep 5 - cd card-functionality - cargo run --bin $ARG -- $CONFIG import: extends: .hw-test-template stage: hw-import variables: ARG: import keygen: extends: .hw-test-template stage: hw-keygen variables: ARG: keygen