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"