.gitlab-ci.yml 4.07 KB
Newer Older
EKbfh's avatar
EKbfh committed
1
2
3
4
5
6
7
8
9
---
stages:
  - compile
  - upload

variables:
  PYTHON_VERSION_3_8: "3.8.3"
  S3_BASE: https://s3.getnoc.com
  S3_BUCKET: $CI_PROJECT_NAMESPACE
EKbfh's avatar
EKbfh committed
10
11
  COMPILE_FLAGS_DEB: "--with-lto --with-system-ffi --with-computed-gotos --enable-loadable-sqlite-extensions"
  COMPILE_FLAGS_RPM: "--with-lto --with-system-ffi --with-computed-gotos --enable-loadable-sqlite-extensions"
EKbfh's avatar
EKbfh committed
12
13
14
15
16
17
18
19
20
21
22
23
24

.base_compile:
  stage: compile
  image: debian:10
  script:
    - mkdir -p /opt/python$PYTHON_VERSION_3_8
    - >
        apt-get update -qq && apt-get install -y -qq
        curl
        build-essential
        libssl-dev zlib1g-dev libncurses5-dev libncursesw5-dev libreadline-dev libsqlite3-dev
        libgdbm-dev libdb5.3-dev libbz2-dev libexpat1-dev liblzma-dev libffi-dev uuid-dev
    - curl -o /tmp/python.tar.gz https://www.python.org/ftp/python/$PYTHON_VERSION_3_8/Python-$PYTHON_VERSION_3_8.tgz
EKbfh's avatar
EKbfh committed
25
26
27
    - tar -zxf /tmp/python.tar.gz -C /opt
    - cd /opt/Python-$PYTHON_VERSION_3_8
    - ./configure --prefix=/opt/python$PYTHON_VERSION_3_8 --enable-optimizations $COMPILE_FLAGS_DEB
EKbfh's avatar
EKbfh committed
28
29
    - make -s
    - make install
EKbfh's avatar
EKbfh committed
30
31
    - /opt/python$PYTHON_VERSION_3_8/bin/python3 -V || true
    - tar czf "${CI_PROJECT_DIR}/python${PYTHON_VERSION_3_8}.tar.gz" -C /opt/python$PYTHON_VERSION_3_8/ .
EKbfh's avatar
EKbfh committed
32
33
34
35
36
37
38
39
  artifacts:
    paths:
      - python*.tar.gz
    expire_in: 1 week
  tags:
    - docker

# Debian Family
EKbfh's avatar
EKbfh committed
40
compile_Debian_10:
EKbfh's avatar
EKbfh committed
41
42
43
  extends: .base_compile
  image: debian:10

EKbfh's avatar
EKbfh committed
44
45
46
47
compile_Debian_9:
  extends: .base_compile
  image: debian:9

EKbfh's avatar
EKbfh committed
48
49
50
# Ubuntu Family
compile_Ubuntu_16:
  extends: .base_compile
EKbfh's avatar
EKbfh committed
51
  image: ubuntu:16.04
EKbfh's avatar
EKbfh committed
52
53
54

compile_Ubuntu_18:
  extends: .base_compile
EKbfh's avatar
EKbfh committed
55
  image: ubuntu:18.04
EKbfh's avatar
EKbfh committed
56
57
58

compile_Ubuntu_20:
  extends: .base_compile
EKbfh's avatar
EKbfh committed
59
  image: ubuntu:20.04
EKbfh's avatar
EKbfh committed
60

EKbfh's avatar
EKbfh committed
61
# RedHat Family
EKbfh's avatar
EKbfh committed
62
compile_RedHat:
EKbfh's avatar
EKbfh committed
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
  extends: .base_compile
  image: centos:7
  script:
    - mkdir -p /opt/python$PYTHON_VERSION_3_8
    - >
      yum update -y -q && yum install -y -q
      curl make
      gcc openssl-devel bzip2-devel libffi-devel sqlite-devel cmake
    - curl -o /tmp/python.tar.gz https://www.python.org/ftp/python/$PYTHON_VERSION_3_8/Python-$PYTHON_VERSION_3_8.tgz
    - tar -zxf /tmp/python.tar.gz -C /opt
    - cd /opt/Python-$PYTHON_VERSION_3_8
    - ./configure --prefix=/opt/python$PYTHON_VERSION_3_8 --enable-optimizations $COMPILE_FLAGS_RPM
    - make -s
    - make install
    - /opt/python$PYTHON_VERSION_3_8/bin/python3 -V || true
EKbfh's avatar
EKbfh committed
78
    - tar czf "${CI_PROJECT_DIR}/python${PYTHON_VERSION_3_8}.tar.gz" -C /opt/python$PYTHON_VERSION_3_8/ .
EKbfh's avatar
EKbfh committed
79
80
81
82
83
84

upload_RedHat:
  stage: upload
  image: registry.getnoc.com/infrastructure/s3helper:master
  script:
    - ls -al
EKbfh's avatar
EKbfh committed
85
    - /tmp/mc -q cp python${PYTHON_VERSION_3_8}.tar.gz cdn/$S3_BUCKET/repo/RedHat/7/
EKbfh's avatar
EKbfh committed
86
  needs:
EKbfh's avatar
EKbfh committed
87
    - job: compile_RedHat
EKbfh's avatar
EKbfh committed
88
89
90
91
      artifacts: true
  tags:
    - docker

EKbfh's avatar
EKbfh committed
92
93
94
95
96
97
98
99
100
101
102
103
104
upload_Debian10:
  stage: upload
  image: registry.getnoc.com/infrastructure/s3helper:master
  script:
    - ls -al
    - /tmp/mc -q cp python${PYTHON_VERSION_3_8}.tar.gz cdn/$S3_BUCKET/repo/Debian/10/
  needs:
    - job: compile_Debian_10
      artifacts: true
  tags:
    - docker

upload_Debian9:
EKbfh's avatar
EKbfh committed
105
106
107
108
  stage: upload
  image: registry.getnoc.com/infrastructure/s3helper:master
  script:
    - ls -al
EKbfh's avatar
EKbfh committed
109
    - /tmp/mc -q cp python${PYTHON_VERSION_3_8}.tar.gz cdn/$S3_BUCKET/repo/Debian/9/
EKbfh's avatar
EKbfh committed
110
  needs:
EKbfh's avatar
EKbfh committed
111
    - job: compile_Debian_9
EKbfh's avatar
EKbfh committed
112
113
114
      artifacts: true
  tags:
    - docker
EKbfh's avatar
EKbfh committed
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150

upload_Ubuntu16:
  stage: upload
  image: registry.getnoc.com/infrastructure/s3helper:master
  script:
    - ls -al
    - /tmp/mc -q cp python${PYTHON_VERSION_3_8}.tar.gz cdn/$S3_BUCKET/repo/Ubuntu/16/
  needs:
    - job: compile_Ubuntu_16
      artifacts: true
  tags:
    - docker

upload_Ubuntu18:
  stage: upload
  image: registry.getnoc.com/infrastructure/s3helper:master
  script:
    - ls -al
    - /tmp/mc -q cp python${PYTHON_VERSION_3_8}.tar.gz cdn/$S3_BUCKET/repo/Ubuntu/18/
  needs:
    - job: compile_Ubuntu_18
      artifacts: true
  tags:
    - docker

upload_Ubuntu20:
  stage: upload
  image: registry.getnoc.com/infrastructure/s3helper:master
  script:
    - ls -al
    - /tmp/mc -q cp python${PYTHON_VERSION_3_8}.tar.gz cdn/$S3_BUCKET/repo/Ubuntu/20/
  needs:
    - job: compile_Ubuntu_20
      artifacts: true
  tags:
    - docker