mirror of
https://gitlab.com/Thoscellen/Wallset.git
synced 2025-05-31 19:04:51 +02:00
test(cicd): Implement new pipe with anchor
This commit is contained in:
parent
9941fa7bac
commit
03cce7edee
@ -1,49 +1,110 @@
|
|||||||
# This file is a template, and might need editing before it works on your project.
|
stages:
|
||||||
# This is a sample GitLab CI/CD configuration file that should run without any modifications.
|
- Manifest
|
||||||
# It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts,
|
- Test
|
||||||
# it uses echo commands to simulate the pipeline execution.
|
- Bundle
|
||||||
#
|
- Distribute
|
||||||
# A pipeline is composed of independent jobs that run scripts, grouped into stages.
|
- Release
|
||||||
# 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
|
variables:
|
||||||
- build
|
ENTRY_FOLDER: test/
|
||||||
- test
|
RELEASE_VERSION: v0.$CI_PIPELINE_IID
|
||||||
- deploy
|
PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${PACKAGE_NAME}/${RELEASE_VERSION}"
|
||||||
|
|
||||||
build-job: # This job runs in the build stage, which runs first.
|
.gen-manifest-job: &gen-manifest
|
||||||
stage: build
|
stage: Manifest
|
||||||
|
rules:
|
||||||
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||||
|
changes:
|
||||||
|
- ${ENTRY_FOLDER}/${PACKAGE_NAME}/*
|
||||||
script:
|
script:
|
||||||
- echo "Compiling the code..."
|
- echo testing ${PACKAGE_NAME}.md
|
||||||
- echo "Compile complete."
|
|
||||||
|
|
||||||
unit-test-job: # This job runs in the test stage.
|
gen-manifest-job/valid_set:
|
||||||
stage: test # It only starts when the job in the build stage completes successfully.
|
variables:
|
||||||
script:
|
PACKAGE_NAME: "valid_set"
|
||||||
- echo "Running unit tests... This will take about 60 seconds."
|
<<: *gen-manifest
|
||||||
- sleep 60
|
|
||||||
- echo "Code coverage is 90%"
|
|
||||||
|
|
||||||
lint-test-job: # This job also runs in the test stage.
|
.check-content-job: &check-content
|
||||||
stage: test # It can run at the same time as unit-test-job (in parallel).
|
stage: Test
|
||||||
|
rules:
|
||||||
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||||
|
changes:
|
||||||
|
- ${ENTRY_FOLDER}/${PACKAGE_NAME}/*
|
||||||
script:
|
script:
|
||||||
- echo "Linting code... This will take about 10 seconds."
|
- echo testing ${PACKAGE_NAME}.md
|
||||||
- sleep 10
|
|
||||||
- echo "No lint issues found."
|
|
||||||
|
|
||||||
deploy-job: # This job runs in the deploy stage.
|
check-content-job/valid_set:
|
||||||
stage: deploy # It only runs when *both* jobs in the test stage complete successfully.
|
variables:
|
||||||
environment: production
|
PACKAGE_NAME: "valid_set"
|
||||||
|
<<: *check-content
|
||||||
|
|
||||||
|
.bundle-job: &bundle
|
||||||
|
stage: Bundle
|
||||||
|
image: javieraviles/zip:latest
|
||||||
|
rules:
|
||||||
|
- if: $CI_COMMIT_TAG
|
||||||
|
when: never # Do not run this job when a tag is created manually
|
||||||
|
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
||||||
|
changes:
|
||||||
|
- ${ENTRY_FOLDER}/${PACKAGE_NAME}/*
|
||||||
script:
|
script:
|
||||||
- echo "Deploying application..."
|
- zip -j ${PACKAGE_NAME}.zip ${ENTRY_FOLDER}/${PACKAGE_NAME}/*
|
||||||
- echo "Application successfully deployed."
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- ${PACKAGE_NAME}.zip
|
||||||
|
when: on_success
|
||||||
|
expire_in: "1 hour"
|
||||||
|
|
||||||
|
bundle-job/valid_set:
|
||||||
|
variables:
|
||||||
|
PACKAGE_NAME: "valid_set"
|
||||||
|
<<: *bundle
|
||||||
|
|
||||||
|
.upload-job: &upload
|
||||||
|
stage: Distribute
|
||||||
|
image: curlimages/curl:latest
|
||||||
|
rules:
|
||||||
|
- if: $CI_COMMIT_TAG
|
||||||
|
when: never # Do not run this job when a tag is created manually
|
||||||
|
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
||||||
|
changes:
|
||||||
|
- ${ENTRY_FOLDER}/${PACKAGE_NAME}/*
|
||||||
|
script:
|
||||||
|
- |
|
||||||
|
curl --fail \
|
||||||
|
--header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
|
||||||
|
--upload-file ${PACKAGE_NAME}.zip "${PACKAGE_REGISTRY_URL}/${PACKAGE_NAME}.zip?select=package_file"
|
||||||
|
|
||||||
|
# upload-job/valid_set:
|
||||||
|
# needs:
|
||||||
|
# - bundle-job/valid_set
|
||||||
|
# variables:
|
||||||
|
# PACKAGE_NAME: "valid_set"
|
||||||
|
# <<: *upload
|
||||||
|
|
||||||
|
.release-job: &release
|
||||||
|
stage: Release
|
||||||
|
image: registry.gitlab.com/gitlab-org/release-cli:latest
|
||||||
|
rules:
|
||||||
|
- if: $CI_COMMIT_TAG
|
||||||
|
when: never # Do not run this job when a tag is created manually
|
||||||
|
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
||||||
|
changes:
|
||||||
|
- ${ENTRY_FOLDER}/${PACKAGE_NAME}/*
|
||||||
|
script:
|
||||||
|
- echo "Releasing assets for $PACKAGE_NAME"
|
||||||
|
release:
|
||||||
|
name: "Release $PACKAGE_NAME $RELEASE_VERSION"
|
||||||
|
tag_name: "$PACKAGE_NAME.$RELEASE_VERSION"
|
||||||
|
description: "Version $RELEASE_VERSION"
|
||||||
|
ref: "$CI_COMMIT_SHA"
|
||||||
|
assets:
|
||||||
|
links:
|
||||||
|
- name: ${PACKAGE_NAME}
|
||||||
|
url: "${PACKAGE_REGISTRY_URL}/${PACKAGE_NAME}.zip"
|
||||||
|
# release-job/valid_set:
|
||||||
|
# needs:
|
||||||
|
# - upload-job/valid_set
|
||||||
|
# variables:
|
||||||
|
# PACKAGE_NAME: "valid_set"
|
||||||
|
# <<: *release
|
||||||
|
5
.vscode/settings.json
vendored
Normal file
5
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"conventionalCommits.scopes": [
|
||||||
|
"cicd"
|
||||||
|
]
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user