Revision 324e955cc8091466f16bd6d7b7897a49872cca79 authored by Danny Grove on 08 January 2020, 12:16:21 UTC, committed by Pierre Boutillier on 13 January 2020, 18:12:54 UTC
The previous configuration of building with Docker used a lot of 'magic' and required a fair bit of traversal between the shell scripts to understand what was happening and where. Most of it could be solved by using Docker Multi-staged Builds but to not constantly break the cache when just dealing with final artifacts I've split out the builder Dockerfile from the main Dockerfile. I've also broken out the commands run into individual make commands while trying to keep the original shell script API mostly intact. Running `./scripts/create_docker_image.sh` will work as it originally did just with the modifications necessary to align the script to also use the same underlying commands that are in make. I would have removed the script completely and adjusted the build pipelines, but the Makefile has an initial requirement of having `opam` installed which might not be the case for all users or the base build system. Othewise you can now just `make docker-image` but this will use the make bindings. It might be a good idea in the future to make your own Docker "building" image that can just use make within GitLabs CI system, but I think that was out of scope of this change.
1 parent 318c9f2
.gitlab-ci.yml
variables:
## Please update `scripts/version.sh` accordingly
build_deps_image_version: 060f4a470db0f20af1027b0f93533c37e995992e
build_deps_image_name: registry.gitlab.com/tezos/opam-repository
public_docker_image_name: docker.io/${CI_PROJECT_PATH}
GIT_STRATEGY: fetch
GIT_DEPTH: "1"
GET_SOURCES_ATTEMPTS: "2"
ARTIFACT_DOWNLOAD_ATTEMPTS: "2"
stages:
- doc
- build
- test
- packaging
- publish
############################################################
## Stage: build (only MR) ##
############################################################
.build_template: &build_definition
image: ${build_deps_image_name}:${build_deps_image_version}
stage: build
except:
- master
- alphanet
- zeronet
- mainnet
- alphanet-staging
- zeronet-staging
- mainnet-staging
- zeronet-snapshots
- mainnet-snapshots
before_script:
- . ./scripts/version.sh
tags:
- gitlab-org
check_opam_deps:
<<: *build_definition
script:
- if [ "${build_deps_image_version}" != "${opam_repository_tag}" ] ; then
echo "Inconsistent dependencies hash between 'scripts/version.sh' and '.gitlab-ci.yml'." ;
echo "${build_deps_image_version} != ${opam_repository_tag}" ;
exit 1 ;
fi
- ./scripts/opam-check.sh
- ./scripts/check_opam_test.sh
check_opam_lint:
<<: *build_definition
script:
- find . ! -path "./_opam/*" -name "*.opam" -exec opam lint {} +;
check_linting:
<<: *build_definition
script:
- src/tooling/lint.sh check.ci
- src/tooling/lint.sh check_scripts
check_python_linting:
<<: *build_definition
script:
- make test-lint
build:
<<: *build_definition
script:
- . ./scripts/version.sh
- dune build @runtest_dune_template
- make all build-test
- opam clean
artifacts:
name: "$CI_COMMIT_REF_NAME"
paths:
- _build
expire_in: 1 day
tags:
- gitlab-org
############################################################
## Stage: test (only MR) ##
############################################################
.test_template: &test_definition
<<: *build_definition
stage: test
dependencies:
- build
retry: 2
# this section is updated using the script scripts/update_unit_test.sh
##BEGIN_UNITEST##
unit:src/proto_005_PsBabyM1/lib_client:
<<: *test_definition
script:
- dune build @src/proto_005_PsBabyM1/lib_client/runtest
unit:src/proto_005_PsBabyM1/lib_protocol:
<<: *test_definition
script:
- dune build @src/proto_005_PsBabyM1/lib_protocol/runtest
unit:src/proto_004_Pt24m4xi/lib_client:
<<: *test_definition
script:
- dune build @src/proto_004_Pt24m4xi/lib_client/runtest
unit:stdlib:
<<: *test_definition
script:
- dune build @src/lib_stdlib/runtest
unit:storage:
<<: *test_definition
script:
- dune build @src/lib_storage/runtest
unit:data_encoding:
<<: *test_definition
script:
- dune build @src/lib_data_encoding/runtest
unit:error_monad:
<<: *test_definition
script:
- dune build @src/lib_error_monad/runtest
unit:src/proto_003_PsddFKi3/lib_client:
<<: *test_definition
script:
- dune build @src/proto_003_PsddFKi3/lib_client/runtest
unit:shell:
<<: *test_definition
script:
- dune build @src/lib_shell/runtest
unit:p2p:
<<: *test_definition
script:
- dune build @src/lib_p2p/runtest
unit:src/proto_alpha/lib_client:
<<: *test_definition
script:
- dune build @src/proto_alpha/lib_client/runtest
unit:src/proto_alpha/lib_protocol:
<<: *test_definition
script:
- dune build @src/proto_alpha/lib_protocol/runtest
unit:src/proto_006_PsCARTHA/lib_client:
<<: *test_definition
script:
- dune build @src/proto_006_PsCARTHA/lib_client/runtest
unit:src/proto_006_PsCARTHA/lib_protocol:
<<: *test_definition
script:
- dune build @src/proto_006_PsCARTHA/lib_protocol/runtest
unit:signer_backends:
<<: *test_definition
script:
- dune build @src/lib_signer_backends/runtest
unit:signer_backends/unix:
<<: *test_definition
script:
- dune build @src/lib_signer_backends/unix/runtest
unit:micheline:
<<: *test_definition
script:
- dune build @src/lib_micheline/runtest
unit:protocol_environment:
<<: *test_definition
script:
- dune build @src/lib_protocol_environment/runtest
unit:src/bin_client:
<<: *test_definition
script:
- dune build @src/bin_client/runtest
unit:crypto:
<<: *test_definition
script:
- dune build @src/lib_crypto/runtest
unit:ocplib-resto/lib_ezresto-directory:
<<: *test_definition
script:
- dune build @vendors/ocplib-resto/lib_ezresto-directory/runtest
unit:ocplib-resto/lib_resto-directory:
<<: *test_definition
script:
- dune build @vendors/ocplib-resto/lib_resto-directory/runtest
unit:ocaml-pbkdf:
<<: *test_definition
script:
- dune build @vendors/ocaml-pbkdf/runtest
unit:ocaml-lmdb:
<<: *test_definition
script:
- dune build @vendors/ocaml-lmdb/runtest
unit:ocaml-uecc:
<<: *test_definition
script:
- dune build @vendors/ocaml-uecc/runtest
unit:ocaml-bip39:
<<: *test_definition
script:
- dune build @vendors/ocaml-bip39/runtest
unit:ocaml-hacl:
<<: *test_definition
script:
- dune build @vendors/ocaml-hacl/runtest
unit:ocaml-secp256k1:
<<: *test_definition
script:
- dune build @vendors/ocaml-secp256k1/runtest
unit:ocaml-ledger-wallet:
<<: *test_definition
script:
- dune build @vendors/ocaml-ledger-wallet/runtest
unit:ocaml-blake2:
<<: *test_definition
script:
- dune build @vendors/ocaml-blake2/runtest
##END_UNITEST##
############################################################
## Stage: run shell integration tests ##
############################################################
# definition for the environment to run all integration tests
.integration_template: &integration_definition
<<: *test_definition
dependencies:
- build
before_script:
- make
tags:
- gitlab-org
integration:contracts_macros.sh:
<<: *integration_definition
script:
- dune build @src/bin_client/runtest_contracts_macros.sh
integration:proto:sandbox:
<<: *integration_definition
script:
- dune build @runtest_sandbox
############################################################
## Stage: run OCaml integration tests ##
############################################################
integration:sandboxes:voting:
<<: *integration_definition
script:
- ROOT_PATH=$PWD/flextesa-voting-demo-noops dune build @src/bin_sandbox/runtest_sandbox_voting_demo_noops
artifacts:
paths:
- flextesa-voting-demo-noops
expire_in: 1 day
when: on_failure
allow_failure: true # This test uses too much resources for GitLab's workers
integration:sandboxes:acc-baking:
<<: *integration_definition
script:
- ROOT_PATH=$PWD/flextesa-acc-sdb dune build @src/bin_sandbox/runtest_sandbox_accusations_simple_double_baking
artifacts:
paths:
- flextesa-acc-sdb
expire_in: 1 day
when: on_failure
integration:sandboxes:acc-endorsement:
<<: *integration_definition
script:
- ROOT_PATH=$PWD/flextesa-acc-sde dune build @src/bin_sandbox/runtest_sandbox_accusations_simple_double_endorsing
artifacts:
paths:
- flextesa-acc-sde
expire_in: 1 day
when: on_failure
############################################################
## Stage: run python integration tests ##
############################################################
# definition for the environment to run all integration tests
.integration_template: &integration_python_definition
<<: *test_definition
dependencies:
- build
before_script:
- make
- mkdir tmp
after_script:
- tail -n +1 tmp/*
tags:
- gitlab-org
# this section is updated using the script scripts/update_integration_test.sh
##BEGIN_INTEGRATION_PYTHON##
integration:baker_endorser:
<<: *integration_python_definition
script:
- pytest tests_python/tests/test_baker_endorser.py -s --log-dir=tmp
stage: test
integration:basic:
<<: *integration_python_definition
script:
- pytest tests_python/tests/test_basic.py -s --log-dir=tmp
stage: test
integration:contract:
<<: *integration_python_definition
script:
- pytest tests_python/tests/test_contract.py -s --log-dir=tmp
stage: test
integration:contract_baker:
<<: *integration_python_definition
script:
- pytest tests_python/tests/test_contract_baker.py -s --log-dir=tmp
stage: test
integration:contract_onchain_opcodes:
<<: *integration_python_definition
script:
- pytest tests_python/tests/test_contract_onchain_opcodes.py -s --log-dir=tmp
stage: test
integration:contract_opcodes:
<<: *integration_python_definition
script:
- pytest tests_python/tests/test_contract_opcodes.py -s --log-dir=tmp
stage: test
integration:cors:
<<: *integration_python_definition
script:
- pytest tests_python/tests/test_cors.py -s --log-dir=tmp
stage: test
integration:double_endorsement:
<<: *integration_python_definition
script:
- pytest tests_python/tests/test_double_endorsement.py -s --log-dir=tmp
stage: test
integration:fork:
<<: *integration_python_definition
script:
- pytest tests_python/tests/test_fork.py -s --log-dir=tmp
stage: test
integration:injection:
<<: *integration_python_definition
script:
- pytest tests_python/tests/test_injection.py -s --log-dir=tmp
stage: test
integration:many_bakers:
<<: *integration_python_definition
script:
- pytest tests_python/tests/test_many_bakers.py -s --log-dir=tmp
stage: test
integration:many_nodes:
<<: *integration_python_definition
script:
- pytest tests_python/tests/test_many_nodes.py -s --log-dir=tmp
stage: test
integration:mempool:
<<: *integration_python_definition
script:
- pytest tests_python/tests/test_mempool.py -s --log-dir=tmp
stage: test
integration:multinode:
<<: *integration_python_definition
script:
- pytest tests_python/tests/test_multinode.py -s --log-dir=tmp
stage: test
integration:multinode_snapshot:
<<: *integration_python_definition
script:
- pytest tests_python/tests/test_multinode_snapshot.py -s --log-dir=tmp
stage: test
integration:multinode_storage_reconstruction:
<<: *integration_python_definition
script:
- pytest tests_python/tests/test_multinode_storage_reconstruction.py -s --log-dir=tmp
stage: test
integration:multisig:
<<: *integration_python_definition
script:
- pytest tests_python/tests/test_multisig.py -s --log-dir=tmp
stage: test
integration:proto_demo_noops_manual_bake:
<<: *integration_python_definition
script:
- pytest tests_python/tests/test_proto_demo_noops_manual_bake.py -s --log-dir=tmp
stage: test
integration:rpc:
<<: *integration_python_definition
script:
- pytest tests_python/tests/test_rpc.py -s --log-dir=tmp
stage: test
integration:tls:
<<: *integration_python_definition
script:
- pytest tests_python/tests/test_tls.py -s --log-dir=tmp
stage: test
integration:voting:
<<: *integration_python_definition
script:
- pytest tests_python/tests/test_voting.py -s --log-dir=tmp
stage: test
integration:examples_forge_transfer:
<<: *integration_definition
script:
- PYTHONPATH=tests_python/ python3 tests_python/examples/forge_transfer.py
stage: test
integration:examples_example:
<<: *integration_definition
script:
- PYTHONPATH=tests_python/ python3 tests_python/examples/example.py
stage: test
integration:examples_test_example:
<<: *integration_definition
script:
- pytest tests_python/examples/test_example.py
stage: test
##END_INTEGRATION_PYTHON##
############################################################
## Stage: run doc integration tests ##
############################################################
documentation:build:
<<: *test_definition
script:
- make doc-html
artifacts:
paths:
- docs
expire_in: 1 day
documentation:linkcheck:
<<: *test_definition
script:
- make doc-html-and-linkcheck
allow_failure: true
############################################################
## Stage: building opam packages (only master and *opam*) ##
############################################################
.opam_template: &opam_definition
image: ${build_deps_image_name}:opam--${build_deps_image_version}
stage: packaging
dependencies: []
only:
- master
- /^.*opam.*$/
script:
- ./scripts/opam-pin.sh
- opam depext --yes ${package}
- opam install --yes ${package}
- opam reinstall --yes --with-test ${package}
tags:
- gitlab-org
##BEGIN_OPAM##
# this section is updated using the script scripts/update_opam_test.sh
opam:bip39:
<<: *opam_definition
variables:
package: bip39
opam:blake2:
<<: *opam_definition
variables:
package: blake2
opam:flextesa:
<<: *opam_definition
variables:
package: flextesa
opam:hacl:
<<: *opam_definition
variables:
package: hacl
opam:index:
<<: *opam_definition
variables:
package: index
opam:irmin:
<<: *opam_definition
variables:
package: irmin
opam:irmin-pack:
<<: *opam_definition
variables:
package: irmin-pack
opam:ledgerwallet:
<<: *opam_definition
variables:
package: ledgerwallet
opam:ledgerwallet-tezos:
<<: *opam_definition
variables:
package: ledgerwallet-tezos
opam:lmdb:
<<: *opam_definition
variables:
package: lmdb
opam:ocplib-ezresto:
<<: *opam_definition
variables:
package: ocplib-ezresto
opam:ocplib-ezresto-directory:
<<: *opam_definition
variables:
package: ocplib-ezresto-directory
opam:ocplib-json-typed:
<<: *opam_definition
variables:
package: ocplib-json-typed
opam:ocplib-json-typed-browser:
<<: *opam_definition
variables:
package: ocplib-json-typed-browser
opam:ocplib-json-typed-bson:
<<: *opam_definition
variables:
package: ocplib-json-typed-bson
opam:ocplib-resto:
<<: *opam_definition
variables:
package: ocplib-resto
opam:ocplib-resto-cohttp:
<<: *opam_definition
variables:
package: ocplib-resto-cohttp
opam:ocplib-resto-cohttp-client:
<<: *opam_definition
variables:
package: ocplib-resto-cohttp-client
opam:ocplib-resto-cohttp-server:
<<: *opam_definition
variables:
package: ocplib-resto-cohttp-server
opam:ocplib-resto-directory:
<<: *opam_definition
variables:
package: ocplib-resto-directory
opam:ocplib-resto-json:
<<: *opam_definition
variables:
package: ocplib-resto-json
opam:pbkdf:
<<: *opam_definition
variables:
package: pbkdf
opam:secp256k1:
<<: *opam_definition
variables:
package: secp256k1
opam:tezos-005-PsBabyM1-test-helpers:
<<: *opam_definition
variables:
package: tezos-005-PsBabyM1-test-helpers
opam:tezos-006-PsCARTHA-test-helpers:
<<: *opam_definition
variables:
package: tezos-006-PsCARTHA-test-helpers
opam:tezos-accuser-005-PsBabyM1:
<<: *opam_definition
variables:
package: tezos-accuser-005-PsBabyM1
opam:tezos-accuser-005-PsBabyM1-commands:
<<: *opam_definition
variables:
package: tezos-accuser-005-PsBabyM1-commands
opam:tezos-accuser-006-PsCARTHA:
<<: *opam_definition
variables:
package: tezos-accuser-006-PsCARTHA
opam:tezos-accuser-006-PsCARTHA-commands:
<<: *opam_definition
variables:
package: tezos-accuser-006-PsCARTHA-commands
opam:tezos-accuser-alpha:
<<: *opam_definition
variables:
package: tezos-accuser-alpha
opam:tezos-accuser-alpha-commands:
<<: *opam_definition
variables:
package: tezos-accuser-alpha-commands
opam:tezos-alpha-test-helpers:
<<: *opam_definition
variables:
package: tezos-alpha-test-helpers
opam:tezos-baker-005-PsBabyM1:
<<: *opam_definition
variables:
package: tezos-baker-005-PsBabyM1
opam:tezos-baker-006-PsCARTHA:
<<: *opam_definition
variables:
package: tezos-baker-006-PsCARTHA
opam:tezos-baker-alpha:
<<: *opam_definition
variables:
package: tezos-baker-alpha
opam:tezos-baking-005-PsBabyM1:
<<: *opam_definition
variables:
package: tezos-baking-005-PsBabyM1
opam:tezos-baking-005-PsBabyM1-commands:
<<: *opam_definition
variables:
package: tezos-baking-005-PsBabyM1-commands
opam:tezos-baking-006-PsCARTHA:
<<: *opam_definition
variables:
package: tezos-baking-006-PsCARTHA
opam:tezos-baking-006-PsCARTHA-commands:
<<: *opam_definition
variables:
package: tezos-baking-006-PsCARTHA-commands
opam:tezos-baking-alpha:
<<: *opam_definition
variables:
package: tezos-baking-alpha
opam:tezos-baking-alpha-commands:
<<: *opam_definition
variables:
package: tezos-baking-alpha-commands
opam:tezos-base:
<<: *opam_definition
variables:
package: tezos-base
opam:tezos-clic:
<<: *opam_definition
variables:
package: tezos-clic
opam:tezos-client:
<<: *opam_definition
variables:
package: tezos-client
opam:tezos-client-000-Ps9mPmXa:
<<: *opam_definition
variables:
package: tezos-client-000-Ps9mPmXa
opam:tezos-client-001-PtCJ7pwo:
<<: *opam_definition
variables:
package: tezos-client-001-PtCJ7pwo
opam:tezos-client-001-PtCJ7pwo-commands:
<<: *opam_definition
variables:
package: tezos-client-001-PtCJ7pwo-commands
opam:tezos-client-002-PsYLVpVv:
<<: *opam_definition
variables:
package: tezos-client-002-PsYLVpVv
opam:tezos-client-002-PsYLVpVv-commands:
<<: *opam_definition
variables:
package: tezos-client-002-PsYLVpVv-commands
opam:tezos-client-003-PsddFKi3:
<<: *opam_definition
variables:
package: tezos-client-003-PsddFKi3
opam:tezos-client-003-PsddFKi3-commands:
<<: *opam_definition
variables:
package: tezos-client-003-PsddFKi3-commands
opam:tezos-client-004-Pt24m4xi:
<<: *opam_definition
variables:
package: tezos-client-004-Pt24m4xi
opam:tezos-client-004-Pt24m4xi-commands:
<<: *opam_definition
variables:
package: tezos-client-004-Pt24m4xi-commands
opam:tezos-client-005-PsBabyM1:
<<: *opam_definition
variables:
package: tezos-client-005-PsBabyM1
opam:tezos-client-005-PsBabyM1-commands:
<<: *opam_definition
variables:
package: tezos-client-005-PsBabyM1-commands
opam:tezos-client-006-PsCARTHA:
<<: *opam_definition
variables:
package: tezos-client-006-PsCARTHA
opam:tezos-client-006-PsCARTHA-commands:
<<: *opam_definition
variables:
package: tezos-client-006-PsCARTHA-commands
opam:tezos-client-alpha:
<<: *opam_definition
variables:
package: tezos-client-alpha
opam:tezos-client-alpha-commands:
<<: *opam_definition
variables:
package: tezos-client-alpha-commands
opam:tezos-client-base:
<<: *opam_definition
variables:
package: tezos-client-base
opam:tezos-client-base-unix:
<<: *opam_definition
variables:
package: tezos-client-base-unix
opam:tezos-client-commands:
<<: *opam_definition
variables:
package: tezos-client-commands
opam:tezos-client-genesis:
<<: *opam_definition
variables:
package: tezos-client-genesis
opam:tezos-client-genesis-alphanet:
<<: *opam_definition
variables:
package: tezos-client-genesis-alphanet
opam:tezos-client-genesis-babylonnet:
<<: *opam_definition
variables:
package: tezos-client-genesis-babylonnet
opam:tezos-client-genesis-carthagenet:
<<: *opam_definition
variables:
package: tezos-client-genesis-carthagenet
opam:tezos-codec:
<<: *opam_definition
variables:
package: tezos-codec
opam:tezos-crypto:
<<: *opam_definition
variables:
package: tezos-crypto
opam:tezos-data-encoding:
<<: *opam_definition
variables:
package: tezos-data-encoding
opam:tezos-embedded-protocol-000-Ps9mPmXa:
<<: *opam_definition
variables:
package: tezos-embedded-protocol-000-Ps9mPmXa
opam:tezos-embedded-protocol-001-PtCJ7pwo:
<<: *opam_definition
variables:
package: tezos-embedded-protocol-001-PtCJ7pwo
opam:tezos-embedded-protocol-002-PsYLVpVv:
<<: *opam_definition
variables:
package: tezos-embedded-protocol-002-PsYLVpVv
opam:tezos-embedded-protocol-003-PsddFKi3:
<<: *opam_definition
variables:
package: tezos-embedded-protocol-003-PsddFKi3
opam:tezos-embedded-protocol-004-Pt24m4xi:
<<: *opam_definition
variables:
package: tezos-embedded-protocol-004-Pt24m4xi
opam:tezos-embedded-protocol-005-PsBABY5H:
<<: *opam_definition
variables:
package: tezos-embedded-protocol-005-PsBABY5H
opam:tezos-embedded-protocol-005-PsBabyM1:
<<: *opam_definition
variables:
package: tezos-embedded-protocol-005-PsBabyM1
opam:tezos-embedded-protocol-006-PsCARTHA:
<<: *opam_definition
variables:
package: tezos-embedded-protocol-006-PsCARTHA
opam:tezos-embedded-protocol-alpha:
<<: *opam_definition
variables:
package: tezos-embedded-protocol-alpha
opam:tezos-embedded-protocol-demo-noops:
<<: *opam_definition
variables:
package: tezos-embedded-protocol-demo-noops
opam:tezos-embedded-protocol-genesis:
<<: *opam_definition
variables:
package: tezos-embedded-protocol-genesis
opam:tezos-embedded-protocol-genesis-alphanet:
<<: *opam_definition
variables:
package: tezos-embedded-protocol-genesis-alphanet
opam:tezos-embedded-protocol-genesis-babylonnet:
<<: *opam_definition
variables:
package: tezos-embedded-protocol-genesis-babylonnet
opam:tezos-embedded-protocol-genesis-carthagenet:
<<: *opam_definition
variables:
package: tezos-embedded-protocol-genesis-carthagenet
opam:tezos-endorser-005-PsBabyM1:
<<: *opam_definition
variables:
package: tezos-endorser-005-PsBabyM1
opam:tezos-endorser-005-PsBabyM1-commands:
<<: *opam_definition
variables:
package: tezos-endorser-005-PsBabyM1-commands
opam:tezos-endorser-006-PsCARTHA:
<<: *opam_definition
variables:
package: tezos-endorser-006-PsCARTHA
opam:tezos-endorser-006-PsCARTHA-commands:
<<: *opam_definition
variables:
package: tezos-endorser-006-PsCARTHA-commands
opam:tezos-endorser-alpha:
<<: *opam_definition
variables:
package: tezos-endorser-alpha
opam:tezos-endorser-alpha-commands:
<<: *opam_definition
variables:
package: tezos-endorser-alpha-commands
opam:tezos-error-monad:
<<: *opam_definition
variables:
package: tezos-error-monad
opam:tezos-event-logging:
<<: *opam_definition
variables:
package: tezos-event-logging
opam:tezos-mempool-005-PsBabyM1:
<<: *opam_definition
variables:
package: tezos-mempool-005-PsBabyM1
opam:tezos-mempool-006-PsCARTHA:
<<: *opam_definition
variables:
package: tezos-mempool-006-PsCARTHA
opam:tezos-mempool-alpha:
<<: *opam_definition
variables:
package: tezos-mempool-alpha
opam:tezos-micheline:
<<: *opam_definition
variables:
package: tezos-micheline
opam:tezos-node:
<<: *opam_definition
variables:
package: tezos-node
opam:tezos-p2p:
<<: *opam_definition
variables:
package: tezos-p2p
opam:tezos-protocol-000-Ps9mPmXa:
<<: *opam_definition
variables:
package: tezos-protocol-000-Ps9mPmXa
opam:tezos-protocol-001-PtCJ7pwo:
<<: *opam_definition
variables:
package: tezos-protocol-001-PtCJ7pwo
opam:tezos-protocol-002-PsYLVpVv:
<<: *opam_definition
variables:
package: tezos-protocol-002-PsYLVpVv
opam:tezos-protocol-003-PsddFKi3:
<<: *opam_definition
variables:
package: tezos-protocol-003-PsddFKi3
opam:tezos-protocol-004-Pt24m4xi:
<<: *opam_definition
variables:
package: tezos-protocol-004-Pt24m4xi
opam:tezos-protocol-005-PsBABY5H:
<<: *opam_definition
variables:
package: tezos-protocol-005-PsBABY5H
opam:tezos-protocol-005-PsBabyM1:
<<: *opam_definition
variables:
package: tezos-protocol-005-PsBabyM1
opam:tezos-protocol-005-PsBabyM1-parameters:
<<: *opam_definition
variables:
package: tezos-protocol-005-PsBabyM1-parameters
opam:tezos-protocol-005-PsBabyM1-tests:
<<: *opam_definition
variables:
package: tezos-protocol-005-PsBabyM1-tests
opam:tezos-protocol-006-PsCARTHA:
<<: *opam_definition
variables:
package: tezos-protocol-006-PsCARTHA
opam:tezos-protocol-006-PsCARTHA-parameters:
<<: *opam_definition
variables:
package: tezos-protocol-006-PsCARTHA-parameters
opam:tezos-protocol-006-PsCARTHA-tests:
<<: *opam_definition
variables:
package: tezos-protocol-006-PsCARTHA-tests
opam:tezos-protocol-alpha:
<<: *opam_definition
variables:
package: tezos-protocol-alpha
opam:tezos-protocol-alpha-parameters:
<<: *opam_definition
variables:
package: tezos-protocol-alpha-parameters
opam:tezos-protocol-alpha-tests:
<<: *opam_definition
variables:
package: tezos-protocol-alpha-tests
opam:tezos-protocol-compiler:
<<: *opam_definition
variables:
package: tezos-protocol-compiler
opam:tezos-protocol-demo-noops:
<<: *opam_definition
variables:
package: tezos-protocol-demo-noops
opam:tezos-protocol-environment:
<<: *opam_definition
variables:
package: tezos-protocol-environment
opam:tezos-protocol-environment-sigs:
<<: *opam_definition
variables:
package: tezos-protocol-environment-sigs
opam:tezos-protocol-genesis:
<<: *opam_definition
variables:
package: tezos-protocol-genesis
opam:tezos-protocol-genesis-alphanet:
<<: *opam_definition
variables:
package: tezos-protocol-genesis-alphanet
opam:tezos-protocol-genesis-babylonnet:
<<: *opam_definition
variables:
package: tezos-protocol-genesis-babylonnet
opam:tezos-protocol-genesis-carthagenet:
<<: *opam_definition
variables:
package: tezos-protocol-genesis-carthagenet
opam:tezos-protocol-updater:
<<: *opam_definition
variables:
package: tezos-protocol-updater
opam:tezos-requester:
<<: *opam_definition
variables:
package: tezos-requester
opam:tezos-rpc:
<<: *opam_definition
variables:
package: tezos-rpc
opam:tezos-rpc-http:
<<: *opam_definition
variables:
package: tezos-rpc-http
opam:tezos-rpc-http-client:
<<: *opam_definition
variables:
package: tezos-rpc-http-client
opam:tezos-rpc-http-client-unix:
<<: *opam_definition
variables:
package: tezos-rpc-http-client-unix
opam:tezos-rpc-http-server:
<<: *opam_definition
variables:
package: tezos-rpc-http-server
opam:tezos-shell:
<<: *opam_definition
variables:
package: tezos-shell
opam:tezos-shell-context:
<<: *opam_definition
variables:
package: tezos-shell-context
opam:tezos-shell-services:
<<: *opam_definition
variables:
package: tezos-shell-services
opam:tezos-signer:
<<: *opam_definition
variables:
package: tezos-signer
opam:tezos-signer-backends:
<<: *opam_definition
variables:
package: tezos-signer-backends
opam:tezos-signer-services:
<<: *opam_definition
variables:
package: tezos-signer-services
opam:tezos-stdlib:
<<: *opam_definition
variables:
package: tezos-stdlib
opam:tezos-stdlib-unix:
<<: *opam_definition
variables:
package: tezos-stdlib-unix
opam:tezos-storage:
<<: *opam_definition
variables:
package: tezos-storage
opam:tezos-tooling:
<<: *opam_definition
variables:
package: tezos-tooling
opam:tezos-validation:
<<: *opam_definition
variables:
package: tezos-validation
opam:tezos-validator:
<<: *opam_definition
variables:
package: tezos-validator
opam:tezos-version:
<<: *opam_definition
variables:
package: tezos-version
opam:uecc:
<<: *opam_definition
variables:
package: uecc
##END_OPAM##
############################################################
## Stage: publish ##
############################################################
publish:docker:
image: docker:latest
services:
- docker:dind
variables:
DOCKER_DRIVER: overlay2
stage: publish
only:
- master@tezos/tezos
- alphanet@tezos/tezos
- zeronet@tezos/tezos
- mainnet@tezos/tezos
- alphanet-staging@tezos/tezos
- zeronet-staging@tezos/tezos
- mainnet-staging@tezos/tezos
- zeronet-snapshots@tezos/tezos
- mainnet-snapshots@tezos/tezos
before_script:
- apk add git binutils
- mkdir ~/.docker || true
- echo "${CI_DOCKER_AUTH}" > ~/.docker/config.json
script:
- LAST_COMMIT_DATE_TIME=$(git log --pretty=format:"%cd" -1 --date="format:%Y%m%d%H%M%S" 2>&1)
- ./scripts/create_docker_image.sh
"${public_docker_image_name}"
"${CI_COMMIT_REF_NAME}"
"${build_deps_image_name}"
"${build_deps_image_version}"
- docker push "${public_docker_image_name}:${CI_COMMIT_REF_NAME}"
- docker push "${public_docker_image_name}-bare:${CI_COMMIT_REF_NAME}"
- docker push "${public_docker_image_name}-debug:${CI_COMMIT_REF_NAME}"
- docker tag
"${public_docker_image_name}:${CI_COMMIT_REF_NAME}"
"${public_docker_image_name}:${CI_COMMIT_REF_NAME}_${CI_COMMIT_SHORT_SHA}_${LAST_COMMIT_DATE_TIME}"
- docker push "${public_docker_image_name}:${CI_COMMIT_REF_NAME}_${CI_COMMIT_SHORT_SHA}_${LAST_COMMIT_DATE_TIME}"
tags:
- safe_docker
publish:doc:
image: ${build_deps_image_name}:${build_deps_image_version}
stage: doc
only:
- master@tezos/tezos
before_script:
- sudo apk add --no-cache openssh-client rsync
- echo "${CI_PK_GITLAB_DOC}" > ~/.ssh/id_ed25519
- echo "${CI_KH}" > ~/.ssh/known_hosts
- chmod 400 ~/.ssh/id_ed25519
script:
- make doc-html
- git clone --depth 5 git@gitlab.com:${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAMESPACE}.gitlab.io gitlab.io
- rsync --recursive --links --perms --delete --verbose
--exclude=.doctrees --exclude={{main,alpha,zero}net,master}/index.html
docs/_build/ gitlab.io/public/
- cd gitlab.io
- if [ -z "$(git status -s)" ] ; then
echo "Nothing to commit!" ;
else
git add public ;
git commit -m "Import doc of ${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}:${CI_COMMIT_SHA}" ;
git push origin master ;
fi
tags:
- gitlab-org
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...