Commit 15eafb17 authored by Matthias Simon's avatar Matthias Simon
Browse files

Add docx job

parent c9ceaf56
Loading
Loading
Loading
Loading
Loading
+19 −43
Original line number Diff line number Diff line
# This file is a template, and might need editing before it works on your project.
# This is a sample GitLab CI/CD configuration file that should run without any modifications.
# It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts,
# it uses echo commands to simulate the pipeline execution.
#
# A pipeline is composed of independent jobs that run scripts, grouped into stages.
# Stages run in sequential order, but jobs within stages run in parallel.
#
# For more information, see: https://docs.gitlab.com/ee/ci/yaml/index.html#stages
#
# You can copy and paste this template into a new `.gitlab-ci.yml` file.
# You should not add this template to an existing `.gitlab-ci.yml` file by using the `include:` keyword.
#
# To contribute improvements to CI/CD templates, please follow the Development guide at:
# https://docs.gitlab.com/ee/development/cicd/templates.html
# This specific template is located at:
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml

stages:          # List of stages for jobs, and their order of execution
stages:
  - build
  - test
  - deploy

build-job:       # This job runs in the build stage, which runs first.
generate-docx:
  stage: build
  script:
    - echo "Compiling the code..."
    - echo "Compile complete."

unit-test-job:   # This job runs in the test stage.
  stage: test    # It only starts when the job in the build stage completes successfully.
  script:
    - echo "Running unit tests... This will take about 60 seconds."
    - sleep 60
    - echo "Code coverage is 90%"

lint-test-job:   # This job also runs in the test stage.
  stage: test    # It can run at the same time as unit-test-job (in parallel).
  script:
    - echo "Linting code... This will take about 10 seconds."
    - sleep 10
    - echo "No lint issues found."

deploy-job:      # This job runs in the deploy stage.
  stage: deploy  # It only runs when *both* jobs in the test stage complete successfully.
  environment: production
  script:
    - echo "Deploying application..."
    - echo "Application successfully deployed."
    - echo "Building etsi-tool..."
    - cd tools/etsi && go build -o etsi .
    - cd ../../
    - echo "Generating docx files from markdown sources..."
    - mkdir -p build
    - for file in src/*.md; do
        basename="${file##*/}";
        outputname="${basename%.md}.docx";
        echo "Generating build/$outputname from $file";
        tools/etsi/etsi generate docx "$file" -o "build/$outputname" --template templates/section.docx;
      done
    - echo "Docx generation complete."
    - ls -lh build/*.docx
  artifacts:
    paths:
      - build/*.docx
    expire_in: 30 days