CircleCI, yazılımın derleme, test ve dağıtımını otomatikleştiren bir sürekli entegrasyon ve sürekli dağıtım platformudur.
.circleci/config.yml
dosyası: CI/CD hattını tanımlarversion: 2.1
orbs:
node: circleci/node@5.0.2
workflows:
örnek-iş-akışı:
jobs:
- derleme-ve-test
jobs:
derleme-ve-test:
docker:
- image: cimg/node:18.1.0
steps:
- checkout
- node/install-packages:
pkg-manager: npm
- run:
name: Testleri çalıştır
command: npm test
orbs:
node: circleci/node@5.0.2
orb.yml
içinde tanımlayıncircleci orb validate orb.yml
circleci orb publish orb.yml namespace/orb@dev:first
workflows:
version: 2
derleme-test-dağıtım:
jobs:
- derleme
- test:
requires:
- derleme
- dağıtım:
requires:
- test
filters:
branches:
only: main
workflows:
version: 2
derleme-test:
jobs:
- derleme
- test-1:
requires:
- derleme
- test-2:
requires:
- derleme
jobs:
derleme:
docker:
- image: cimg/base:stable
steps:
- checkout
- run:
name: Uygulamayı derle
command: make build
steps:
- run:
name: Testleri çalıştır
command: |
if [ "${CIRCLE_BRANCH}" == "develop" ]; then
make test
fi
jobs:
derleme:
docker:
- image: cimg/node:18.1.0
jobs:
derleme:
machine:
image: ubuntu-2004:current
jobs:
derleme:
macos:
xcode: 14.2.0
CIRCLE_BRANCH
: Şu anda derlenen Git dalının adıCIRCLE_SHA1
: Mevcut yapının son commit'inin SHA1 hash'iCIRCLE_BUILD_NUM
: Mevcut yapının numarasıCIRCLE_PROJECT_USERNAME
: Mevcut projenin GitHub veya Bitbucket kullanıcı adıCIRCLE_PROJECT_REPONAME
: Mevcut projenin GitHub veya Bitbucket repo adıCircleCI UI'da ayarlanır: Proje Ayarları > Ortam Değişkenleri
steps:
- run:
name: Özel değişkeni yazdır
command: echo $MY_CUSTOM_VAR
steps:
- save_cache:
paths:
- ~/project/node_modules
key: npm-packages-{{ checksum "package-lock.json" }}
steps:
- restore_cache:
keys:
- npm-packages-{{ checksum "package-lock.json" }}
steps:
- store_artifacts:
path: test-sonuclari
destination: tr1
steps:
- store_test_results:
path: test-sonuclari
jobs:
oluştur-ve-gönder:
docker:
- image: cimg/base:stable
steps:
- checkout
- setup_remote_docker
- run:
name: Docker imajı oluştur ve gönder
command: |
docker build -t myorg/myapp:$CIRCLE_SHA1 .
echo $DOCKER_PWD | docker login -u $DOCKER_LOGIN --password-stdin
docker push myorg/myapp:$CIRCLE_SHA1
jobs:
k8s-dağıtım:
docker:
- image: cimg/base:stable
steps:
- checkout
- kubernetes/create-or-update-resource:
resource-file: k8s/deployment.yml
resource-name: deployment/myapp
workflows:
version: 2
derleme-test-onay-dağıtım:
jobs:
- derleme
- test:
requires:
- derleme
- beklet:
type: approval
requires:
- test
- dağıtım:
requires:
- beklet
curl -X POST https://circleci.com/api/v2/project/:vcs-type/:org/:repo/pipeline -H "Circle-Token: $CIRCLE_TOKEN" -H "Content-Type: application/json" -d '{"branch":"main"}'
curl https://circleci.com/api/v2/project/:vcs-type/:org/:repo/pipeline -H "Circle-Token: $CIRCLE_TOKEN"
jobs:
derleme:
steps:
- run:
name: SSH'ı etkinleştir
command: |
mkdir -p ~/.ssh
echo 'github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==' >> ~/.ssh/known_hosts
- add_ssh_keys:
fingerprints:
- "SO:ME:FIN:G:ER:PR:IN:T"
Projenizin derleme sayfasına gidin > Yapıtlar sekmesi
2024 © Tüm hakları saklıdır - buraxta.com