190 lines
6.7 KiB
YAML
190 lines
6.7 KiB
YAML
image:
|
|
registry.gitlab.com/etherlab.org/build-container-factory/leap-15.4:linux-syms
|
|
|
|
stages:
|
|
- build
|
|
- test
|
|
- doc
|
|
- deploy
|
|
- release
|
|
|
|
variables:
|
|
PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/ethercat/${CI_COMMIT_TAG}"
|
|
|
|
rtai:
|
|
stage: build
|
|
image: registry.gitlab.com/etherlab.org/build-container-factory/ethercat-kernels:rtai
|
|
|
|
script:
|
|
- ./bootstrap
|
|
- ./configure --enable-8139too --enable-igb --enable-e100 --with-linux-dir=/usr/src/linux-obj/x86_64/0404rtai --enable-rtdm --with-rtai-dir=/usr
|
|
- make -j8 all modules
|
|
|
|
xenomai2:
|
|
stage: build
|
|
image: registry.gitlab.com/etherlab.org/build-container-factory/ethercat-kernels:xenomai2
|
|
|
|
script:
|
|
- ./bootstrap
|
|
- ./configure --disable-8139too --with-linux-dir=/usr/src/linux-obj/x86_64/0318xenomai2 --enable-rtdm --with-xenomai-dir=/usr
|
|
- make -j8 all modules
|
|
|
|
kernel 3.4:
|
|
stage: build
|
|
image: registry.gitlab.com/etherlab.org/build-container-factory/ethercat-kernels:k3.4-rt145
|
|
script:
|
|
- ./bootstrap
|
|
- ./configure --enable-8139too --enable-e100 --enable-e1000 --enable-e1000e --enable-r8169 --with-linux-dir=/usr/src/linux-obj/x86_64/0304rt
|
|
- make -j8 all modules
|
|
|
|
xenomai3:
|
|
stage: build
|
|
image: registry.gitlab.com/etherlab.org/build-container-factory/ethercat-kernels:xenomai3
|
|
|
|
script:
|
|
- ./bootstrap
|
|
- ./configure --enable-8139too --enable-igb --enable-e100 --with-linux-dir=/usr/src/linux-obj/x86_64/0510xenomai3 --enable-rtdm --with-xenomai-dir=/usr
|
|
- make -j8 all modules
|
|
|
|
xenomai3 no eoe:
|
|
stage: build
|
|
image: registry.gitlab.com/etherlab.org/build-container-factory/ethercat-kernels:xenomai3
|
|
|
|
script:
|
|
- ./bootstrap
|
|
- ./configure --enable-8139too --enable-igb --enable-e100 --with-linux-dir=/usr/src/linux-obj/x86_64/0510xenomai3 --enable-rtdm --with-xenomai-dir=/usr --disable-eoe
|
|
- make -j8 all modules
|
|
|
|
build:
|
|
stage: build
|
|
|
|
script:
|
|
- ./bootstrap
|
|
- ./configure --with-linux-dir=/usr/src/linux-obj/$(uname -i)/default --enable-tty --with-devices=2 --enable-ccat --enable-fakeuserlib
|
|
- make -j8 all modules
|
|
- make -C lib symbol-version-check
|
|
- make DISTCHECK_CONFIGURE_FLAGS="--with-linux-dir=/usr/src/linux-obj/$(uname -i)/default" distcheck
|
|
- make dist
|
|
- mkdir test_dist && cd test_dist && tar xzf ../ethercat-*.tar.gz && cd ethercat-*/
|
|
- mkdir build && cd build
|
|
- ../configure --with-linux-dir=/usr/src/linux-obj/$(uname -i)/default --disable-8139too --enable-tty --with-devices=2 --enable-ccat --enable-fakeuserlib
|
|
- make -j8 all modules
|
|
|
|
artifacts:
|
|
paths:
|
|
- ethercat-*.tar.gz
|
|
- ethercat-*.tar.bz2
|
|
|
|
# Build ethercat tool subcommand help output for documentation
|
|
commands:
|
|
stage: build
|
|
script:
|
|
- ./bootstrap
|
|
- ./configure --disable-kernel --disable-userlib
|
|
- make -j8 all
|
|
- mkdir documentation/external
|
|
- make -C documentation ext
|
|
artifacts:
|
|
paths:
|
|
- script/init.d/ethercat
|
|
- script/ethercat.service
|
|
- tool/ethercat
|
|
- documentation/external/
|
|
|
|
test cmake:
|
|
stage: test
|
|
|
|
script:
|
|
- ./bootstrap
|
|
- ./configure --prefix=/tmp/ethercat_test_dir --disable-kernel
|
|
- make -j8 install
|
|
- cd examples/user
|
|
- mkdir build && cd build
|
|
- cmake -DCMAKE_PREFIX_PATH=/tmp/ethercat_test_dir -DCMAKE_BUILD_TYPE=Release ..
|
|
- make
|
|
- ldd userexample
|
|
|
|
# This job is collected by the EtherLab Documentation project.
|
|
# It must be named 'doxygen' and must produce an artifact with a 'html'
|
|
# directory directly containing the doxygen index HTML.
|
|
doxygen:
|
|
stage: doc
|
|
variables:
|
|
GIT_SUBMODULE_STRATEGY: recursive
|
|
script:
|
|
- ./bootstrap
|
|
- ./configure --with-linux-dir=/usr/src/linux-obj/$(uname -i)/default --enable-tty --with-devices=2 --enable-ccat
|
|
- make doc
|
|
- mv doxygen-output/html/ html/
|
|
artifacts:
|
|
paths:
|
|
- html/
|
|
|
|
# This job is collected by the EtherLab Documentation project.
|
|
# It must be named 'pdf' and must produce a 'pdf' directory as an artifact.
|
|
# All PDF files in this directory will be collected.
|
|
pdf:
|
|
needs:
|
|
- job: commands
|
|
artifacts: true
|
|
stage: doc
|
|
image: registry.gitlab.com/etherlab.org/build-container-factory/leap-15.4:texlive
|
|
script:
|
|
- cd documentation
|
|
- git show -s --format="\def\revision{%h}\def\gitversion{%(describe)}\def\gittag{%(describe:abbrev=0)}\def\gitauthor{%an}\def\isodate#1-#2-#3x{\day=#3 \month=#2 \year=#1}\isodate %csx" HEAD > git.tex
|
|
- make
|
|
- make index
|
|
- make
|
|
- mkdir ../pdf
|
|
- mv *.pdf ../pdf
|
|
artifacts:
|
|
paths:
|
|
- pdf/
|
|
|
|
# Trigger EtherLab Documentation project to update https://docs.etherlab.org
|
|
update docs server:
|
|
stage: deploy
|
|
rules:
|
|
- if: ($CI_COMMIT_BRANCH == "stable-1.6" || $CI_COMMIT_TAG) && $CI_PROJECT_NAMESPACE == "etherlab.org"
|
|
trigger: etherlab.org/docs
|
|
|
|
upload:
|
|
stage: deploy
|
|
image: curlimages/curl:latest
|
|
rules:
|
|
- if: $CI_COMMIT_TAG && $CI_COMMIT_REF_PROTECTED == "true"
|
|
dependencies:
|
|
- "build"
|
|
script:
|
|
- echo "$CI_COMMIT_TAG" | grep -qE '^[0-9]+(\.[0-9]+){2}$'
|
|
- |
|
|
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
|
|
--header "Content-Type: application/gzip" \
|
|
--fail-with-body \
|
|
--upload-file "ethercat-${CI_COMMIT_TAG}.tar.gz" \
|
|
"${PACKAGE_REGISTRY_URL}/ethercat-${CI_COMMIT_TAG}.tar.gz"
|
|
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
|
|
--header "Content-Type: application/x-bzip2" \
|
|
--fail-with-body \
|
|
--upload-file "ethercat-${CI_COMMIT_TAG}.tar.bz2" \
|
|
"${PACKAGE_REGISTRY_URL}/ethercat-${CI_COMMIT_TAG}.tar.bz2"
|
|
|
|
|
|
release:
|
|
stage: release
|
|
image: registry.gitlab.com/gitlab-org/release-cli:latest
|
|
rules:
|
|
- if: $CI_COMMIT_TAG && $CI_COMMIT_REF_PROTECTED == "true"
|
|
script:
|
|
- |
|
|
release-cli create --name "Release $CI_COMMIT_TAG" --tag-name $CI_COMMIT_TAG \
|
|
--assets-link "{\"name\":\"ethercat.tar.bz2\",\"url\":\"${PACKAGE_REGISTRY_URL}/ethercat-${CI_COMMIT_TAG}.tar.bz2\",\"link_type\":\"package\",\"filepath\":\"/dist-tarballs/ethercat.tar.bz2\"}" \
|
|
--assets-link "{\"name\":\"ethercat.tar.gz\",\"url\":\"${PACKAGE_REGISTRY_URL}/ethercat-${CI_COMMIT_TAG}.tar.gz\",\"link_type\":\"package\",\"filepath\":\"/dist-tarballs/ethercat.tar.gz\"}"
|
|
|
|
# from 'Workflows/MergeRequest-Pipelines.gitlab-ci.yml', but on all branches
|
|
workflow:
|
|
rules:
|
|
- if: $CI_MERGE_REQUEST_IID
|
|
- if: $CI_COMMIT_TAG
|
|
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_BRANCH == "stable-1.6"
|