83 lines
2.1 KiB
YAML
83 lines
2.1 KiB
YAML
variables:
|
|
CI_REGISTRY: registry.connectone.pro
|
|
CONTAINER_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_PATH}:${CI_BUILD_REF_NAME}_${CI_BUILD_REF}
|
|
|
|
stages:
|
|
- release
|
|
- deploy
|
|
- release-deb
|
|
- release-hosted
|
|
|
|
release:
|
|
stage: release
|
|
image: docker:latest
|
|
before_script:
|
|
- docker login -u gitlab-ci-token -p ${CI_BUILD_TOKEN} ${CI_REGISTRY}
|
|
script:
|
|
- docker build -t ${CONTAINER_IMAGE} .
|
|
- docker push ${CONTAINER_IMAGE}
|
|
only:
|
|
- develop
|
|
- main
|
|
|
|
release-deb:
|
|
stage: release-deb
|
|
image: docker:latest
|
|
variables:
|
|
DOCKER_BUILDKIT: 1
|
|
script:
|
|
- cd build
|
|
- docker build . -t freerad_builder:3.2.x -f Dockerfile
|
|
- docker run -e DEB_USER=${DEB_USER} -e DEB_PASS="${DEB_PASS}" freerad_builder:3.2.x ./upload.sh
|
|
when: manual
|
|
only:
|
|
- main
|
|
|
|
release-hosted:
|
|
stage: release-hosted
|
|
image: alpine:latest
|
|
variables:
|
|
VERSION: "1.0.1"
|
|
script:
|
|
- apk add --no-cache curl
|
|
- chmod a+x hosted/install.sh
|
|
- tar -czvf hosted.tar.gz hosted
|
|
- 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file hosted.tar.gz "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/hosted/${VERSION}/hosted.tar.gz"'
|
|
when: manual
|
|
only:
|
|
- main
|
|
|
|
deploy-staging:
|
|
stage: deploy
|
|
image: jar3b/deploh:${STAGING_DEPLOYER_VERSION}
|
|
variables:
|
|
KUBECONFIG_BASE64: ${STAGING_KUBECONFIG}
|
|
KUBECONFIG_CONTEXT_NAME: ${STAGING_KUBECONFIG_CONTEXT}
|
|
NAMESPACE: ${STAGING_NAMESPACE}
|
|
MAIN_DOMAIN: ${STAGING_MAIN_DOMAIN}
|
|
|
|
STORAGE_BASE: ${STAGING_STORAGE_BASE}
|
|
script:
|
|
- he.sh . ${NAMESPACE} "freeradius" --set db.password=${PG_PROD_PASS}
|
|
environment:
|
|
name: staging
|
|
only:
|
|
- develop
|
|
|
|
deploy-production:
|
|
stage: deploy
|
|
image: jar3b/deploh:${PRODUCTION_DEPLOYER_VERSION}
|
|
variables:
|
|
KUBECONFIG_BASE64: ${PRODUCTION_KUBECONFIG}
|
|
KUBECONFIG_CONTEXT_NAME: ${PRODUCTION_KUBECONFIG_CONTEXT}
|
|
NAMESPACE: ${PRODUCTION_NAMESPACE}
|
|
MAIN_DOMAIN: ${PRODUCTION_MAIN_DOMAIN}
|
|
|
|
STORAGE_BASE: ${PRODUCTION_STORAGE_BASE}
|
|
script:
|
|
- he.sh . ${NAMESPACE} "freeradius" --set db.password=${PG_PROD_PASS}
|
|
environment:
|
|
name: production
|
|
when: manual
|
|
only:
|
|
- main |