Skip to content
Snippets Groups Projects
Commit 4bdb8e6d authored by DAVID Axel's avatar DAVID Axel
Browse files

ci: package: Refactor the build package to publish package

parent 4ac13e5b
No related branches found
No related tags found
No related merge requests found
...@@ -23,12 +23,10 @@ stages: ...@@ -23,12 +23,10 @@ stages:
workflow: workflow:
rules: rules:
- if: $CI_COMMIT_TAG
- if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push" - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"
when: never when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event" - if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
when: never
- if: $CI_COMMIT_TAG && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
- if: $CI_COMMIT_BRANCH - if: $CI_COMMIT_BRANCH
...@@ -47,6 +45,7 @@ variables: ...@@ -47,6 +45,7 @@ variables:
LM_PYTHON_VERSION: "3.9" LM_PYTHON_VERSION: "3.9"
SAFETY_POLICY_FILE: "$CI_PROJECT_DIR/.safety-policy.yml" SAFETY_POLICY_FILE: "$CI_PROJECT_DIR/.safety-policy.yml"
SAFETY_COLOR: "True" SAFETY_COLOR: "True"
CI_SERVER_URL: "https://etulab.univ-amu.fr"
include: include:
- template: Jobs/Dependency-Scanning.gitlab-ci.yml - template: Jobs/Dependency-Scanning.gitlab-ci.yml
...@@ -58,10 +57,12 @@ include: ...@@ -58,10 +57,12 @@ include:
dependency_scanning: dependency_scanning:
cache: [ ] cache: [ ]
stage: 🔒️ security 🔒️ stage: 🔒️ security 🔒️
interruptible: true
.secret-analyzer: .secret-analyzer:
cache: [ ] cache: [ ]
stage: 🔒️ security 🔒️ stage: 🔒️ security 🔒️
interruptible: true
# Install dependencies # Install dependencies
...@@ -79,6 +80,7 @@ dependency_scanning: ...@@ -79,6 +80,7 @@ dependency_scanning:
- ${CI_PROJECT_DIR}/.cache/pip - ${CI_PROJECT_DIR}/.cache/pip
policy: pull-push policy: pull-push
stage: .pre stage: .pre
interruptible: true
before_script: before_script:
- python --version - python --version
- pip install --upgrade pip - pip install --upgrade pip
...@@ -102,6 +104,7 @@ dependency_scanning: ...@@ -102,6 +104,7 @@ dependency_scanning:
# Pre script # Pre script
.load_env: .load_env:
interruptible: true
cache: cache:
- key: - key:
files: files:
...@@ -143,6 +146,7 @@ dependency_scanning: ...@@ -143,6 +146,7 @@ dependency_scanning:
- $CI_PROJECT_DIR/**/*.yml - $CI_PROJECT_DIR/**/*.yml
- $CI_PROJECT_DIR/**/*.yaml - $CI_PROJECT_DIR/**/*.yaml
- if: $CI_PIPELINE_SOURCE == 'merge_request_event' - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
- if: $CI_COMMIT_TAG
script: script:
- yamllint src tests - yamllint src tests
...@@ -153,6 +157,7 @@ dependency_scanning: ...@@ -153,6 +157,7 @@ dependency_scanning:
- changes: - changes:
- $CI_PROJECT_DIR/**/*.md - $CI_PROJECT_DIR/**/*.md
- if: $CI_PIPELINE_SOURCE == 'merge_request_event' - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
- if: $CI_COMMIT_TAG
stage: stage:
🎨 format 🎨 🎨 format 🎨
before_script: before_script:
...@@ -348,34 +353,42 @@ dependency_scanning: ...@@ -348,34 +353,42 @@ dependency_scanning:
stage: 🚀 release 🚀 stage: 🚀 release 🚀
rules: rules:
# Run this job when a tag is created manually # Run this job when a tag is created manually
- if: $CI_COMMIT_TAG && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - if: $CI_COMMIT_TAG
.load_env_for_release: 🔧 publish package 🚧:
extends: extends:
- .load_env - .load_env
- .common_release - .common_release
🔧 build package 🚧:
extends: .load_env_for_release
needs: needs:
- !reference [ .load_env_for_release, needs ] - !reference [ .load_env, needs ]
- 🤞 coverage 🔍️ - 🤞 coverage 🔍️
before_script:
- export PATH="$PATH":"$HOME/.local/bin"
- pip install --user pipx
- pipx ensurepath
- pipx install poetry
script: script:
- poetry config repositories.gitlab $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/pypi
- poetry build - poetry build
- poetry publish -r gitlab --username=ci_cd --password=$PUBLISHER_PASSWORD
artifacts: artifacts:
when: on_success when: on_success
paths: paths:
- dist - dist
🔖 release package 🚧: 🔖 release version 🚧:
cache: [] cache: []
extends: .common_release extends: .common_release
needs: needs:
- 🔧 build package 🚧 - 🔧 publish package 🚧
image: registry.gitlab.com/gitlab-org/release-cli:latest image: registry.gitlab.com/gitlab-org/release-cli:latest
script: script:
- echo "Running the release job." - echo "Release created"
release: release:
tag_name: $CI_COMMIT_TAG tag_name: $CI_COMMIT_TAG
name: 'Release $CI_COMMIT_TAG' name: 'Release ${CI_COMMIT_TAG}'
description: 'Release created using the release-cli.' description: 'Release created using the release-cli.'
assets:
links:
- name: '${CI_PROJECT_NAME} PyPi package'
url: '${CI_SERVER_URL}/${CI_PROJECT_PATH}/-/packages'
...@@ -8,7 +8,7 @@ The Caesar algorithm is provided for the cipher method and decipher method.\ ...@@ -8,7 +8,7 @@ The Caesar algorithm is provided for the cipher method and decipher method.\
authors = ["Axel DAVID <axel.david@etu.univ-amu.fr>"] authors = ["Axel DAVID <axel.david@etu.univ-amu.fr>"]
readme = "README.md" readme = "README.md"
license = "GPL-3.0-or-later" license = "GPL-3.0-or-later"
packages = [{ include = "src" }] packages = [{ include = "vigenere_api", from = "src" }]
homepage = "https://etulab.univ-amu.fr/d19006523/vigenere-api" homepage = "https://etulab.univ-amu.fr/d19006523/vigenere-api"
repository = "https://etulab.univ-amu.fr/d19006523/vigenere-api" repository = "https://etulab.univ-amu.fr/d19006523/vigenere-api"
keywords = ["vigenere", "caesar", "API", "Python"] keywords = ["vigenere", "caesar", "API", "Python"]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment