.gitlab-ci.yml 3.88 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

EKbfh's avatar
EKbfh committed
80
.base_upload:
EKbfh's avatar
EKbfh committed
81
82
  stage: upload
  image: registry.getnoc.com/infrastructure/s3helper:master
EKbfh's avatar
EKbfh committed
83
84
85
86
87
88
89
90
91
  before_script:
    - sha1sum python${PYTHON_VERSION_3_8}.tar.gz > python${PYTHON_VERSION_3_8}.tar.gz_SHA1SUMS
  script:
    - /tmp/mc -q cp python${PYTHON_VERSION_3_8}.* cdn/$S3_BUCKET/repo/RedHat/7/
  tags:
    - docker

upload_RedHat:
  extends: .base_compile
EKbfh's avatar
EKbfh committed
92
  script:
EKbfh's avatar
EKbfh committed
93
    - /tmp/mc -q cp python${PYTHON_VERSION_3_8}.tar.gz cdn/$S3_BUCKET/repo/RedHat/7/
EKbfh's avatar
EKbfh committed
94
  needs:
EKbfh's avatar
EKbfh committed
95
    - job: compile_RedHat
EKbfh's avatar
EKbfh committed
96
97
      artifacts: true

EKbfh's avatar
EKbfh committed
98
upload_Debian10:
EKbfh's avatar
EKbfh committed
99
  extends: .base_compile
EKbfh's avatar
EKbfh committed
100
101
102
103
104
105
106
  script:
    - /tmp/mc -q cp python${PYTHON_VERSION_3_8}.tar.gz cdn/$S3_BUCKET/repo/Debian/10/
  needs:
    - job: compile_Debian_10
      artifacts: true

upload_Debian9:
EKbfh's avatar
EKbfh committed
107
  extends: .base_compile
EKbfh's avatar
EKbfh committed
108
  script:
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
      artifacts: true
EKbfh's avatar
EKbfh committed
113
114

upload_Ubuntu16:
EKbfh's avatar
EKbfh committed
115
  extends: .base_compile
EKbfh's avatar
EKbfh committed
116
  script:
EKbfh's avatar
EKbfh committed
117
    - /tmp/mc -q cp python${PYTHON_VERSION_3_8}.tar.gz cdn/$S3_BUCKET/repo/Debian/16/
EKbfh's avatar
EKbfh committed
118
119
120
121
122
  needs:
    - job: compile_Ubuntu_16
      artifacts: true

upload_Ubuntu18:
EKbfh's avatar
EKbfh committed
123
  extends: .base_compile
EKbfh's avatar
EKbfh committed
124
  script:
EKbfh's avatar
EKbfh committed
125
    - /tmp/mc -q cp python${PYTHON_VERSION_3_8}.tar.gz cdn/$S3_BUCKET/repo/Debian/18/
EKbfh's avatar
EKbfh committed
126
127
128
129
130
  needs:
    - job: compile_Ubuntu_18
      artifacts: true

upload_Ubuntu20:
EKbfh's avatar
EKbfh committed
131
  extends: .base_compile
EKbfh's avatar
EKbfh committed
132
  script:
EKbfh's avatar
EKbfh committed
133
    - /tmp/mc -q cp python${PYTHON_VERSION_3_8}.tar.gz cdn/$S3_BUCKET/repo/Debian/20/
EKbfh's avatar
EKbfh committed
134
135
136
  needs:
    - job: compile_Ubuntu_20
      artifacts: true