openpgp-card/.gitlab-ci.yml

122 lines
3 KiB
YAML

# SPDX-FileCopyrightText: 2021 Heiko Schaefer <heiko@schaefer.name>
# SPDX-License-Identifier: CC0-1.0
stages:
- build
- test
- docker-build
- docker-test
- deploy
reuse:
image:
name: fsfe/reuse:latest
entrypoint: [""]
script:
- reuse lint
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
cargo-fmt:
image: rust:latest
script:
- rustup component add rustfmt
- cargo fmt -- --check
build_cardtest_smartpgp:
stage: docker-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: docker-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: docker-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: docker-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: docker-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: docker-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"]