-
Notifications
You must be signed in to change notification settings - Fork 8
Apa Itu Codefresh
Codefresh adalah salah satu layanan CI/CD untuk aplikasi berbasis Docker. Secara instan membangun, menguji, dan menggunakan gambar aplikasi umum di Kubernetes.
Billing juga dapat diintegrasikan via Google Marketplace
Codefresh bekerja berdasarkan step (langkah) dan type yang diformasikan kedalam Yml format seperti contoh² di github. Setiap step dapat dijelaskan sbb:
step-id:
description: [Free-text description]
working-directory: [ID of another step or a relative path]
environment:
- key=value
[step contents]
on-fail:
- command
on-success:
- command
on-finish:
- command
fail-fast: false # default true
Saluran pipa Anda tidak perlu dimulai dan diakhiri dalam satu langkah. Anda dapat menjalankan langkah-langkah paralel dalam pipa Codefresh. Anda dapat memiliki langkah "mulai" sebanyak yang Anda inginkan dan langkah "berakhir" sebanyak mungkin.
File YAML terdiri dari serangkaian langkah yang dieksekusi dalam urutan yang ditentukan.
Fitur | Deskripsi |
---|---|
Freestyle | Menjalankan satu atau lebih perintah shell dalam wadah yang mirip dengan docker run. |
Build | Membangun gambar Docker seperti build docker |
Push | Mendorong gambar Docker ke registri Docker mirip dengan tag docker dan push docker |
Git Clone | Mengesampingkan perilaku git clone default |
Composition | Memulai Docker Komposisi seperti docker-compose. Buang begitu pipa selesai. |
Launch | Komposisi Memulai komposisi Docker jangka panjang yang tetap setelah akhir pipa |
Deploy | Menyebarkan ke cluster Kubernetes |
Approval | Menjeda pipa dan menunggu intervensi manusia |
version: '1.0'
steps:
get_git_token:
title: Reading Github token
image: codefresh/cli
commands:
- cf_export GITHUB_TOKEN=$(codefresh get context github --decrypt -o yaml | yq -y .spec.data.auth.password)
main_clone:
title: Updating the repo
image: alpine/git:latest
commands:
- if [ -d compose ]; then rm -Rf compose; fi
- git clone https://chetabahana:$GITHUB_TOKEN@github.com/chetabahana/compose.git
- cd compose && git remote rm origin
- git config --global user.name "chetabahana"
- git config --global user.email "chetabahana@gmail.com"
- git remote add origin https://chetabahana:$GITHUB_TOKEN@github.com/chetabahana/compose.git
- sed -i "s/-[0-9]\{1,\}-\([a-zA-Z0-9_]*\)'/-`date +%d%H%M`-whatever'/g" cloudbuild.yaml
- git status && git add . && git commit -m "fresh commit" && git push -u origin master
- Definisi langkah freestyle: menggunakan bidang lingkungan.
- Eksekusi pipa: setelah mengklik tombol "Bangun", buka bagian "Opsi lanjutan".
- Definisi saluran pipa: di bawah bagian “Variabel lingkungan” di tampilan saluran pipa.
- Konfigurasi Bersama: didefinisikan di bawah pengaturan akun Anda.
version: '1.0'
steps:
create_test_data_step:
title: Creating dummy data
image: alpine
commands:
- echo "Writing in shared volume" > /codefresh/volume/sample_text.txt
my_sample_composition:
type: composition
title: Composition with volume
composition:
version: '2'
services:
my_sample_service:
image: node
volumes:
- '${{CF_VOLUME_NAME}}:${{CF_VOLUME_PATH}}'
working_dir: '${{CF_VOLUME_PATH}}'
command: bash -c "pwd && cat sample_text.txt"
composition_candidates:
my_unit_tests:
image: python
volumes:
- '${{CF_VOLUME_NAME}}:${{CF_VOLUME_PATH}}'
working_dir: '${{CF_VOLUME_PATH}}'
command: bash -c "pwd && echo 'Finished tests' > test_result.txt"
read_test_data_step:
title: Reading dummy data
image: alpine
commands:
- ls -l /codefresh/volume
- cat /codefresh/volume/test_result.txt
- Docker-stack.yml yang berisi definisi aplikasi
- Host tempat Docker Swarm Anda berjalan
- Kunci SSH yang dapat digunakan Codefresh untuk mengakses host
- Nama tumpukan yang akan digunakan setelah aplikasi dikerahkan.
- Semua informasi ini akan diteruskan ke pipa dalam bentuk parameter build.
- description: example-1
workflow:
version: '1.0'
steps:
google_kms:
image: codefreshplugins/google-kms
commands:
- kms encrypt VALUE_1 VALUE_n
Type Trigger
- Git Triggers
- Dockerhub Triggers
- Azure Registry Triggers
- Quay Triggers
- Artifactory Triggers
- Cron Trigger
- API/CLI Trigger
Seperti halnya Docker Hub atau Google Registry dll Pemicu GIT adalah jenis pemicu build. Namun dengan Codefresh Anda dapat memilih repositori lain selain dari milik proyek itu sendiri. Bahkan untuk memicu build pada proyek A meskipun komit terjadi pada proyek B.
Codefresh piplines bisa disetel memicu eksekusi yang terkait dengan image push ke DockerHub. Anda juga dapat menggunakan klien baris perintah via Codefresh CLI untuk mengelola pemicu.
# get trigger-event details for previously created trigger-event
codefresh get trigger-event -o yaml registry:dockerhub:codefresh:fortune:push:107e9db97062
uri: 'registry:dockerhub:codefresh:fortune:push:107e9db97062'
type: registry
kind: dockerhub
public: false
secret: aGao5weuez2G6WF9
status: active
endpoint: >-
https://g.codefresh.io/nomios/dockerhub?account=107e9db97062&secret=aGao5weuez2G6WF9
description: Docker Hub codefresh/fortune push event
help: >-
Docker Hub webhooks fire when an image is built in, pushed or a new tag is
added to, your repository.
Configure Docker Hub webhooks on
https://hub.docker.com/r/codefresh/fortune/~/settings/webhooks/
Add following Codefresh Docker Hub webhook endpoint
https://g.codefresh.io/nomios/dockerhub?account=107e9db97062&secret=aGao5weuez2G6WF9
Untuk memicu jaringan pipa dari jarak jauh Anda dapat menemukan perintah Curl premade (termasuk kunci api) di pengaturan build untuk setiap pipa:
Anda juga dapat memasukkan variabel lingkungan tambahan menggunakan array:
curl 'https://g.codefresh.io/api/builds/5b1a78d1bdbf074c8a9b3458' \
--compressed -H 'content-type:application/json; charset=utf-8' \
-H 'Authorization: <your_key_here>' \
--data-binary '{"serviceId":"5b1a78d1bdbf074c8a9b3458",\
"type":"build","repoOwner":"kostis-codefresh",\
"branch":"master","repoName":"nestjs-example",\
"variables":{"sample-var1":"sample1","SAMPLE_VAR2":"SAMPLE2"}}'
This documentation is mapped under Mapping and licensed under Apache License, Version 2.0.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2018-2020 Chetabahana Project
You are on the wiki of our repo
- Site
- Main
- Project
- Pratinjau
- Pola Dasar
- Bagan Kerja
- Field Tutorial
- Cloud Site API
- Google Ads API
- Cloud Tasks API
- Google Trends API
- Basis Implementasi
- Beranda
- Perangkat
- Pasang Aplikasi
- Penyetelan Aplikasi
- Menyiapkan Frontend
- Menjalankan Backend API
- Menjalankan Toko