# SPDX-FileCopyrightText: 2021 Heiko Schaefer # SPDX-License-Identifier: CC0-1.0 stages: - lint - test - virtual-build - virtual-test - hw-import - hw-keygen 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 build_cardtest_smartpgp: stage: virtual-build image: docker:stable variables: IMAGE_LATEST: $CI_REGISTRY_IMAGE/cardtest-smartpgp:latest IMAGE_SHA: $CI_REGISTRY_IMAGE/cardtest-smartpgp:$CI_COMMIT_SHA services: - docker:stable-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 -f card-functionality/docker/Dockerfile.cardtest.smartpgp -t $IMAGE_SHA -t $IMAGE_LATEST . - docker push $IMAGE_SHA - docker push $IMAGE_LATEST needs: [] build_cardtest_ykneo: stage: virtual-build image: docker:stable variables: IMAGE_LATEST: $CI_REGISTRY_IMAGE/cardtest-ykneo:latest IMAGE_SHA: $CI_REGISTRY_IMAGE/cardtest-ykneo:$CI_COMMIT_SHA services: - docker:stable-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 -f card-functionality/docker/Dockerfile.cardtest.ykneo -t $IMAGE_SHA -t $IMAGE_LATEST . - docker push $IMAGE_SHA - docker push $IMAGE_LATEST needs: [] run_cardtest_smartpgp_import: stage: virtual-test image: registry.gitlab.com/hkos/openpgp-card/cardtest-smartpgp script: - cd / - sh run.sh import needs: ["build_cardtest_smartpgp"] run_cardtest_smartpgp_keygen: stage: virtual-test image: registry.gitlab.com/hkos/openpgp-card/cardtest-smartpgp script: - cd / - sh run.sh keygen # run after import test - running tests in parallel on the same card fails needs: ["run_cardtest_smartpgp_import"] run_cardtest_ykneo_import: stage: virtual-test image: registry.gitlab.com/hkos/openpgp-card/cardtest-ykneo script: - cd / - sh run.sh import needs: ["build_cardtest_ykneo"] run_cardtest_ykneo_keygen: stage: virtual-test image: registry.gitlab.com/hkos/openpgp-card/cardtest-ykneo script: - cd / - sh run.sh keygen # run after import test - running tests in parallel on the same card fails needs: ["run_cardtest_ykneo_import"] import: stage: hw-import image: rust:1-slim-bullseye tags: - card parallel: matrix: - ARG: [ import ] CONFIG: - "ci/basic-2_1.toml" - "ci/nitro-pro1.toml" - "ci/nitro-pro2.toml" - "ci/nitro-start.toml" before_script: # install dependencies - apt-get update - apt-get -y install --no-install-recommends libpcsclite-dev pkg-config nettle-dev clang libclang-dev pcscd pcsc-tools usbutils strace script: - /etc/init.d/pcscd start #- sleep 5 - cd card-functionality - cargo run --bin $ARG -- $CONFIG keygen: stage: hw-keygen image: rust:1-slim-bullseye tags: - card parallel: matrix: - ARG: [ keygen ] CONFIG: - "ci/basic-2_1.toml" - "ci/nitro-pro1.toml" - "ci/nitro-pro2.toml" - "ci/nitro-start.toml" before_script: # install dependencies - apt-get update - apt-get -y install --no-install-recommends libpcsclite-dev pkg-config nettle-dev clang libclang-dev pcscd pcsc-tools usbutils strace script: - /etc/init.d/pcscd start #- sleep 5 - cd card-functionality - cargo run --bin $ARG -- $CONFIG