openpgp-card/.gitlab-ci.yml
puzzlewolf a45586cf13
Use ykneo/smartpgp builddeps images for virtual Java Card tests.
Remove unnecessary dockerfiles and run.sh.
Make hardware-builddeps image to run hardware card tests on.
Add license header and cleanup.
2021-12-24 11:37:54 +01:00

124 lines
3.1 KiB
YAML

# SPDX-FileCopyrightText: 2021 Heiko Schaefer <heiko@schaefer.name>
# SPDX-FileCopyrightText: 2021 Nora Widdecke <mail@nora.pink>
# 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