CI/CD ਕੀ ਹੈ? ਕੰਟੀਨਿਊਅਸ ਇੰਟੀਗ੍ਰੇਸ਼ਨ ਅਤੇ ਡਿਲੀਵਰੀ ਸਰਲ ਭਾਸ਼ਾ ਵਿੱਚ
CI/CD ਸਾਫ਼ਟਵੇਅਰ ਭੇਜਣ ਦਾ ਇੱਕ ਤਰੀਕਾ ਹੈ ਜਿਸ ਵਿੱਚ ਹਰ ਕੋਡ ਬਦਲਾਅ ਆਪਣੇ ਆਪ ਬਣਾਇਆ, ਟੈਸਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ, ਜੇ ਪਾਸ ਹੋਵੇ, ਰਿਲੀਜ਼ ਲਈ ਤਿਆਰ ਜਾਂ ਜਾਰੀ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। CI (ਕੰਟੀਨਿਊਅਸ ਇੰਟੀਗ੍ਰੇਸ਼ਨ) ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਬਦਲਾਅ ਅਕਸਰ ਮਿਲਾਏ ਜਾਂਦੇ ਹਨ ਅਤੇ ਹਰ ਵਾਰ ਆਟੋਮੈਟਿਕ ਟੈਸਟਾਂ ਨਾਲ ਜਾਂਚੇ ਜਾਂਦੇ ਹਨ। CD (ਕੰਟੀਨਿਊਅਸ ਡਿਲੀਵਰੀ ਜਾਂ ਡਿਪਲੌਇਮੈਂਟ) ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਜੋ ਬਦਲਾਅ ਪਾਸ ਹੁੰਦੇ ਹਨ ਉਹ ਪੈਕ ਹੋ ਕੇ ਉਪਭੋਗਤਾਵਾਂ ਵੱਲ ਘੱਟ ਜਾਂ ਬਿਨਾਂ ਹੱਥੀਂ ਕੰਮ ਦੇ ਭੇਜੇ ਜਾਂਦੇ ਹਨ।
ਗੱਲ ਸਾਦੀ ਹੈ: ਗ਼ਲਤੀਆਂ ਮਿੰਟਾਂ ਵਿੱਚ ਫੜੋ, ਹਫ਼ਤਿਆਂ ਬਾਅਦ ਨਹੀਂ ਜਦੋਂ ਕੋਈ ਗਾਹਕ ਉਹਨਾਂ ਨੂੰ ਲੱਭੇ।
AI ਨਾਲ ਐਪ ਬਣਾਉਂਦੇ ਸਮੇਂ CI/CD ਕਿਉਂ ਮਾਇਨੇ ਰੱਖਦਾ ਹੈ
AI ਬਿਲਡਰ ਕੋਡ ਬਦਲਾਅ ਤੇਜ਼ੀ ਨਾਲ ਕਰਦੇ ਹਨ। ਇੱਕ ਪ੍ਰੋਮਪਟ ਦਸ ਫ਼ਾਈਲਾਂ ਛੂਹ ਸਕਦਾ ਹੈ। ਇਹ ਰਫ਼ਤਾਰ ਉਦੋਂ ਤੱਕ ਵਧੀਆ ਹੈ ਜਦੋਂ ਤੱਕ ਚੈੱਕਆਉਟ ਪੰਨੇ ਵਿੱਚ ਕੀਤਾ ਬਦਲਾਅ ਚੁੱਪਚਾਪ ਲੌਗਇਨ ਪੰਨਾ ਤੋੜ ਨਾ ਦੇਵੇ ਅਤੇ ਕਿਸੇ ਉਪਭੋਗਤਾ ਦੀ ਈਮੇਲ ਆਉਣ ਤੱਕ ਕਿਸੇ ਨੂੰ ਪਤਾ ਨਾ ਲੱਗੇ।
CI/CD ਇਸੇ ਲਈ ਸੁਰੱਖਿਆ ਜਾਲ ਹੈ। ਹਰ ਬਦਲਾਅ ਉੱਤੇ ਭਰੋਸਾ ਕਰਨ ਦੀ ਥਾਂ, ਇੱਕ ਪਾਈਪਲਾਈਨ ਹਰ ਵਾਰ ਇੱਕੋ ਜਾਂਚਾਂ ਚਲਾਉਂਦੀ ਹੈ:
- ਕੀ ਐਪ ਅਜੇ ਵੀ ਬਿਨਾਂ ਗ਼ਲਤੀ ਦੇ ਬਣਦੀ ਹੈ?
- ਕੀ ਆਟੋਮੈਟਿਕ ਟੈਸਟ ਅਜੇ ਵੀ ਪਾਸ ਹੁੰਦੇ ਹਨ?
- ਕੀ ਕੋਡ ਪ੍ਰੋਜੈਕਟ ਦੇ ਨਿਯਮ ਮੰਨਦਾ ਹੈ (ਕਿਸਮਾਂ, ਫਾਰਮੈਟਿੰਗ, ਸੁਰੱਖਿਆ ਜਾਂਚਾਂ)?
ਜੇ ਕੋਈ ਜਾਂਚ ਫ਼ੇਲ੍ਹ ਹੋਵੇ, ਤਾਂ ਬਦਲਾਅ ਉਪਭੋਗਤਾਵਾਂ ਤੱਕ ਪਹੁੰਚਣ ਤੋਂ ਪਹਿਲਾਂ ਰੋਕ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ। ਤੁਹਾਡਾ ਕੋਡ ਜਿੰਨੀ ਤੇਜ਼ੀ ਨਾਲ ਬਦਲਦਾ ਹੈ, ਇੱਕ ਅਜਿਹੀ ਜਾਂਚ ਓਨੀ ਹੀ ਕੀਮਤੀ ਹੁੰਦੀ ਹੈ ਜੋ ਥੱਕਦੀ ਨਹੀਂ ਅਤੇ ਕਦਮ ਨਹੀਂ ਛੱਡਦੀ।
ਰੋਜ਼ਾਨਾ ਜੀਵਨ ਦੀ ਮਿਸਾਲ
ਇੱਕ ਬੇਕਰੀ ਬਾਰੇ ਸੋਚੋ ਜੋ ਹਰ ਸਵੇਰ ਦੁਕਾਨਾਂ ਨੂੰ ਰੋਟੀ ਭੇਜਦੀ ਹੈ।
- CI/CD ਤੋਂ ਬਿਨਾਂ, ਹਰ ਬੇਕਰ ਇੱਕ ਹਫ਼ਤਾ ਆਪਣੀ ਵਿਧੀ ਵਿੱਚ ਆਪਣੇ ਆਪ ਬਦਲਾਅ ਕਰਦਾ ਹੈ, ਫਿਰ ਸ਼ੁੱਕਰਵਾਰ ਰਾਤ ਸਭ ਇਕੱਠੇ ਕਰਦੇ ਹਨ ਅਤੇ ਉਮੀਦ ਕਰਦੇ ਹਨ ਕਿ ਰੋਟੀ ਅਜੇ ਵੀ ਫੁੱਲੇਗੀ। ਜਦੋਂ ਨਹੀਂ ਫੁੱਲਦੀ, ਕਿਸੇ ਨੂੰ ਪਤਾ ਨਹੀਂ ਕਿ ਕਿਸਦੇ ਬਦਲਾਅ ਨੇ ਇਹ ਕੀਤਾ।
- CI ਨਾਲ, ਹਰ ਛੋਟਾ ਵਿਧੀ ਬਦਲਾਅ ਤੁਰੰਤ ਇੱਕ ਟੈਸਟ ਰੋਟੀ ਵਿੱਚ ਬਣਾਇਆ ਅਤੇ ਜਾਂਚਿਆ ਜਾਂਦਾ ਹੈ: ਸੁਆਦ, ਵਜ਼ਨ, ਆਕਾਰ। ਗ਼ਲਤ ਬਦਲਾਅ ਉਸੇ ਦਿਨ ਫੜਿਆ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਤੁਹਾਨੂੰ ਪਤਾ ਹੁੰਦਾ ਹੈ ਕਿ ਕਿਹੜਾ ਸੀ।
- CD ਨਾਲ, ਜਾਂਚ ਪਾਸ ਕਰਨ ਵਾਲੀਆਂ ਰੋਟੀਆਂ ਸਿੱਧੀਆਂ ਡਿਲੀਵਰੀ ਵੈਨ ਵਿੱਚ ਜਾਂਦੀਆਂ ਹਨ, ਹਰ ਵਾਰ ਇੱਕੋ ਤਰੀਕੇ ਨਾਲ ਪੈਕ ਅਤੇ ਲੇਬਲ ਹੋ ਕੇ, ਨਾ ਕਿ ਕਿਸੇ ਦੇ ਸਵੇਰੇ 5 ਵਜੇ ਹੱਥੀਂ ਡੱਬੇ ਭਰਨ ਦੇ।
ਜਾਂਚ ਬੇਕਰਾਂ ਨੂੰ ਬਿਹਤਰ ਨਹੀਂ ਬਣਾਉਂਦੀ। ਇਹ ਉਹਨਾਂ ਦੀਆਂ ਗ਼ਲਤੀਆਂ ਸਸਤੀਆਂ ਬਣਾਉਂਦੀ ਹੈ।
CI/CD ਪਾਈਪਲਾਈਨ ਕਿਵੇਂ ਕੰਮ ਕਰਦੀ ਹੈ
ਪਾਈਪਲਾਈਨ ਕਦਮਾਂ ਦੀ ਇੱਕ ਸੂਚੀ ਹੈ ਜੋ CI/CD ਸੇਵਾ ਆਪਣੇ ਆਪ ਚਲਾਉਂਦੀ ਹੈ ਜਦੋਂ ਕੁਝ ਵਾਪਰਦਾ ਹੈ, ਆਮ ਤੌਰ 'ਤੇ ਜਦੋਂ ਕੋਈ GitHub ਵਰਗੇ ਰਿਪੋਜ਼ਟਰੀ ਵਿੱਚ ਕੋਡ ਪੁਸ਼ ਕਰਦਾ ਹੈ। ਇੱਕ ਆਮ ਪਾਈਪਲਾਈਨ ਇਸ ਤਰ੍ਹਾਂ ਦੀ ਹੁੰਦੀ ਹੈ:
| ਕਦਮ | ਕੀ ਹੁੰਦਾ ਹੈ | ਕੀ ਫੜਦਾ ਹੈ |
|---|---|---|
| 1. ਟ੍ਰਿਗਰ | ਕੋਡ ਪੁਸ਼ ਹੁੰਦਾ ਹੈ ਜਾਂ ਪੁੱਲ ਰਿਕਵੈਸਟ ਖੁੱਲ੍ਹਦੀ ਹੈ | — |
| 2. ਇੰਸਟਾਲ | ਇੱਕ ਨਵੀਂ ਮਸ਼ੀਨ ਕੋਡ ਅਤੇ ਉਸਦੀਆਂ ਡਿਪੈਂਡੈਂਸੀਆਂ ਡਾਊਨਲੋਡ ਕਰਦੀ ਹੈ | ਗੁੰਮ ਜਾਂ ਟੁੱਟੇ ਪੈਕੇਜ |
| 3. ਬਿਲਡ | ਐਪ ਕੰਪਾਈਲ ਜਾਂ ਬੰਡਲ ਹੁੰਦੀ ਹੈ | ਸਿੰਟੈਕਸ ਅਤੇ ਕਿਸਮ ਦੀਆਂ ਗ਼ਲਤੀਆਂ, ਟੁੱਟੇ ਇੰਪੋਰਟ |
| 4. ਟੈਸਟ | ਆਟੋਮੈਟਿਕ ਟੈਸਟ ਚੱਲਦੇ ਹਨ | ਉਹ ਫ਼ੀਚਰ ਜੋ ਹੁਣ ਕੰਮ ਨਹੀਂ ਕਰਦੇ |
| 5. ਜਾਂਚਾਂ | ਲਿੰਟਿੰਗ, ਫਾਰਮੈਟਿੰਗ, ਸੁਰੱਖਿਆ ਸਕੈਨ | ਸਟਾਈਲ ਦੀਆਂ ਸਮੱਸਿਆਵਾਂ, ਜਾਣੇ-ਪਛਾਣੇ ਕਮਜ਼ੋਰ ਪੈਕੇਜ, ਲੀਕ ਹੋਈਆਂ ਕੁੰਜੀਆਂ |
| 6. ਸਟੇਜਿੰਗ 'ਤੇ ਡਿਪਲੌਇ | ਐਪ ਪ੍ਰੋਡਕਸ਼ਨ ਦੀ ਟੈਸਟ ਕਾਪੀ 'ਤੇ ਜਾਂਦੀ ਹੈ | ਸਿਰਫ਼ ਅਸਲ ਵਾਤਾਵਰਣ ਵਿੱਚ ਦਿੱਸਣ ਵਾਲੀਆਂ ਸਮੱਸਿਆਵਾਂ |
| 7. ਪ੍ਰੋਡਕਸ਼ਨ 'ਤੇ ਡਿਪਲੌਇ | ਐਪ ਲਾਈਵ ਹੁੰਦੀ ਹੈ, ਆਪਣੇ ਆਪ ਜਾਂ ਮਨਜ਼ੂਰੀ ਤੋਂ ਬਾਅਦ | — |
ਹਰ ਕਦਮ ਕਿਸੇ ਸਾਫ਼ ਮਸ਼ੀਨ 'ਤੇ ਚੱਲਦਾ ਹੈ, ਕਿਸੇ ਦੇ ਲੈਪਟਾਪ 'ਤੇ ਨਹੀਂ, ਇਸ ਲਈ "ਮੇਰੇ ਕੰਪਿਊਟਰ 'ਤੇ ਚੱਲਦਾ ਹੈ" ਬਹਾਨਾ ਨਹੀਂ ਬਣਦਾ। ਜੇ ਕੋਈ ਕਦਮ ਫ਼ੇਲ੍ਹ ਹੋਵੇ, ਤਾਂ ਪਾਈਪਲਾਈਨ ਰੁਕ ਜਾਂਦੀ ਹੈ ਅਤੇ ਬਦਲਾਅ ਕਰਨ ਵਾਲੇ ਨੂੰ ਦੱਸਦੀ ਹੈ।
ਕਦਮ ਇੱਕ ਸੰਰਚਨਾ ਫ਼ਾਈਲ ਵਿੱਚ ਪਰਿਭਾਸ਼ਿਤ ਹੁੰਦੇ ਹਨ ਜੋ ਕੋਡ ਦੇ ਨਾਲ ਰਹਿੰਦੀ ਹੈ। ਉਦਾਹਰਣ ਵਜੋਂ GitHub Actions ਵਿੱਚ, ਇਹ ਰਿਪੋਜ਼ਟਰੀ ਦੇ .github/workflows ਫੋਲਡਰ ਵਿੱਚ ਇੱਕ YAML ਫ਼ਾਈਲ ਹੁੰਦੀ ਹੈ।
ਕੰਟੀਨਿਊਅਸ ਡਿਲੀਵਰੀ ਬਨਾਮ ਕੰਟੀਨਿਊਅਸ ਡਿਪਲੌਇਮੈਂਟ
"CD" ਅਸਪਸ਼ਟ ਹੈ, ਅਤੇ ਲੋਕ ਇਸਨੂੰ ਦੋਵੇਂ ਤਰੀਕਿਆਂ ਨਾਲ ਵਰਤਦੇ ਹਨ:
| ਕੰਟੀਨਿਊਅਸ ਡਿਲੀਵਰੀ | ਕੰਟੀਨਿਊਅਸ ਡਿਪਲੌਇਮੈਂਟ | |
|---|---|---|
| ਟੈਸਟ ਆਪਣੇ ਆਪ ਚੱਲਦੇ ਹਨ | ਹਾਂ | ਹਾਂ |
| ਰਿਲੀਜ਼ ਆਪਣੇ ਆਪ ਪੈਕ ਹੁੰਦੀ ਹੈ | ਹਾਂ | ਹਾਂ |
| ਆਪਣੇ ਆਪ ਲਾਈਵ ਹੁੰਦੀ ਹੈ | ਨਹੀਂ, ਇੱਕ ਵਿਅਕਤੀ "ਰਿਲੀਜ਼" ਦਬਾਉਂਦਾ ਹੈ | ਹਾਂ, ਹਰ ਪਾਸ ਬਦਲਾਅ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ |
| ਕਿਸ ਲਈ ਚੰਗਾ | ਜ਼ਿਆਦਾਤਰ ਛੋਟੀਆਂ ਟੀਮਾਂ, ਭੁਗਤਾਨ ਕਰਨ ਵਾਲੇ ਉਪਭੋਗਤਾਵਾਂ ਵਾਲੀਆਂ ਐਪਾਂ | ਮਜ਼ਬੂਤ ਟੈਸਟ ਕਵਰੇਜ ਅਤੇ ਮਾਨੀਟਰਿੰਗ ਵਾਲੀਆਂ ਟੀਮਾਂ |
ਕੰਟੀਨਿਊਅਸ ਡਿਪਲੌਇਮੈਂਟ ਤਾਂ ਹੀ ਚੰਗਾ ਕੰਮ ਕਰਦਾ ਹੈ ਜੇ ਟੈਸਟ ਚੰਗੇ ਹੋਣ। ਜੇ ਤੁਹਾਡੇ ਟੈਸਟ ਚੈੱਕਆਉਟ ਨੂੰ ਕਵਰ ਨਹੀਂ ਕਰਦੇ, ਤਾਂ ਕੰਟੀਨਿਊਅਸ ਡਿਪਲੌਇਮੈਂਟ ਖ਼ੁਸ਼ੀ-ਖ਼ੁਸ਼ੀ ਟੁੱਟਿਆ ਚੈੱਕਆਉਟ ਵੀ ਭੇਜ ਦੇਵੇਗਾ।
ਇੱਕ ਕੰਮ ਕੀਤੀ ਮਿਸਾਲ: ਪਾਈਪਲਾਈਨ ਵਾਲੀ ਬੁਕਿੰਗ ਐਪ
ਮੰਨ ਲਓ ਤੁਹਾਡੇ ਕੋਲ ਇੱਕ ਸੈਲੂਨ ਬੁਕਿੰਗ ਐਪ ਹੈ, ਅਤੇ ਉਸਦਾ ਕੋਡ ਇੱਕ GitHub ਰਿਪੋਜ਼ਟਰੀ ਵਿੱਚ ਹੈ। ਤੁਸੀਂ AI ਬਿਲਡਰ ਨੂੰ ਕਹਿੰਦੇ ਹੋ: "ਪਹਿਲੀ ਵਾਰ ਆਉਣ ਵਾਲੇ ਗਾਹਕਾਂ ਲਈ 10% ਛੋਟ ਜੋੜੋ।"
- ਬਦਲਾਅ ਇੱਕ ਨਵੀਂ ਬ੍ਰਾਂਚ ਵਿੱਚ ਪੁਸ਼ ਹੁੰਦਾ ਹੈ ਅਤੇ ਇੱਕ ਪੁੱਲ ਰਿਕਵੈਸਟ ਖੁੱਲ੍ਹਦੀ ਹੈ।
- ਪਾਈਪਲਾਈਨ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ। ਇਹ ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰਦੀ ਹੈ ਅਤੇ ਐਪ ਬਣਾਉਂਦੀ ਹੈ, ਅਤੇ ਇਹ ਪਾਸ ਹੁੰਦਾ ਹੈ।
- ਇਹ ਟੈਸਟ ਚਲਾਉਂਦੀ ਹੈ। ਇੱਕ ਟੈਸਟ, "ਵਾਪਸ ਆਉਣ ਵਾਲਾ ਗਾਹਕ ਪੂਰੀ ਕੀਮਤ ਦਿੰਦਾ ਹੈ", ਫ਼ੇਲ੍ਹ ਹੁੰਦਾ ਹੈ: ਛੋਟ ਹਰ ਕਿਸੇ 'ਤੇ ਲਾਗੂ ਹੋ ਰਹੀ ਹੈ।
- ਪੁੱਲ ਰਿਕਵੈਸਟ ਵਿੱਚ ਲਾਲ ਕਰਾਸ ਦਿੱਸਦਾ ਹੈ। ਬਦਲਾਅ ਮਿਲਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ।
- ਤੁਸੀਂ AI ਨੂੰ ਇਸਨੂੰ ਠੀਕ ਕਰਨ ਲਈ ਕਹਿੰਦੇ ਹੋ। ਉਹ ਸੁਧਾਰ ਪੁਸ਼ ਕਰਦਾ ਹੈ; ਪਾਈਪਲਾਈਨ ਦੁਬਾਰਾ ਚੱਲਦੀ ਹੈ ਅਤੇ ਸਭ ਕੁਝ ਪਾਸ ਹੋ ਜਾਂਦਾ ਹੈ।
- ਬਦਲਾਅ ਮਿਲਾਇਆ ਜਾਂਦਾ ਹੈ। ਪਾਈਪਲਾਈਨ ਇਸਨੂੰ ਸਟੇਜਿੰਗ ਵਾਤਾਵਰਣ 'ਤੇ ਡਿਪਲੌਇ ਕਰਦੀ ਹੈ, ਜਿੱਥੇ ਤੁਸੀਂ ਇੱਕ ਟੈਸਟ ਬੁਕਿੰਗ ਕਰਦੇ ਹੋ।
- ਤੁਸੀਂ ਮਨਜ਼ੂਰੀ ਦਿੰਦੇ ਹੋ, ਅਤੇ ਇਹ ਪ੍ਰੋਡਕਸ਼ਨ 'ਤੇ ਡਿਪਲੌਇ ਹੁੰਦਾ ਹੈ।
ਪਾਈਪਲਾਈਨ ਤੋਂ ਬਿਨਾਂ, ਕਦਮ 3 ਤੁਹਾਡੇ ਗਾਹਕਾਂ ਦੇ ਬਟੂਏ 'ਤੇ ਹੁੰਦਾ।
ਮੁੱਖ ਸ਼ਬਦ
| ਸ਼ਬਦ | ਅਰਥ |
|---|---|
| ਪਾਈਪਲਾਈਨ | ਕਦਮਾਂ ਦਾ ਆਟੋਮੈਟਿਕ ਕ੍ਰਮ ਜੋ ਹਰ ਬਦਲਾਅ 'ਤੇ ਚੱਲਦਾ ਹੈ। |
| ਬਿਲਡ | ਸੋਰਸ ਕੋਡ ਨੂੰ ਅਜਿਹੀ ਚੀਜ਼ ਵਿੱਚ ਬਦਲਣਾ ਜੋ ਚੱਲ ਸਕੇ। |
| ਆਟੋਮੈਟਿਕ ਟੈਸਟ | ਕੋਡ ਜੋ ਜਾਂਚਦਾ ਹੈ ਕਿ ਹੋਰ ਕੋਡ ਸਹੀ ਕੰਮ ਕਰਦਾ ਹੈ। |
| ਪੁੱਲ ਰਿਕਵੈਸਟ (PR) | ਇੱਕ ਪ੍ਰਸਤਾਵਿਤ ਬਦਲਾਅ ਜਿਸਨੂੰ ਬਾਕੀ (ਅਤੇ ਪਾਈਪਲਾਈਨ) ਮਿਲਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਜਾਂਚਦੇ ਹਨ। ਵੇਖੋ GitHub ਕੀ ਹੈ। |
| ਬ੍ਰਾਂਚ | ਬਦਲਾਵਾਂ ਦੀ ਵੱਖਰੀ ਲਾਈਨ, ਤਾਂ ਜੋ ਅਧੂਰਾ ਕੰਮ ਮੁੱਖ ਕੋਡ ਨੂੰ ਨਾ ਛੂਹੇ। |
| ਸਟੇਜਿੰਗ | ਤੁਹਾਡੀ ਐਪ ਦੀ ਨਿੱਜੀ ਕਾਪੀ ਜੋ ਪ੍ਰੋਡਕਸ਼ਨ ਵਰਗੀ ਹੁੰਦੀ ਹੈ, ਉਪਭੋਗਤਾਵਾਂ ਤੋਂ ਪਹਿਲਾਂ ਬਦਲਾਅ ਜਾਂਚਣ ਲਈ। |
| ਪ੍ਰੋਡਕਸ਼ਨ | ਲਾਈਵ ਐਪ ਜੋ ਤੁਹਾਡੇ ਉਪਭੋਗਤਾ ਵਰਤਦੇ ਹਨ। |
| ਰੋਲਬੈਕ | ਰਿਲੀਜ਼ ਗ਼ਲਤ ਹੋਣ 'ਤੇ ਪਿਛਲੇ ਕੰਮ ਕਰਨ ਵਾਲੇ ਵਰਜਨ 'ਤੇ ਵਾਪਸ ਜਾਣਾ। |
| ਹਰਾ / ਲਾਲ ਬਿਲਡ | ਪਾਈਪਲਾਈਨ ਚੱਲਣਾ ਜੋ ਪਾਸ ਹੋਈ / ਫ਼ੇਲ੍ਹ ਹੋਈ। |
ਆਮ ਗ਼ਲਤਫ਼ਹਿਮੀਆਂ
- "CI/CD ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਮੇਰੀ ਐਪ ਟੈਸਟ ਹੋ ਗਈ।" ਪਾਈਪਲਾਈਨ ਸਿਰਫ਼ ਉਹੀ ਟੈਸਟ ਚਲਾਉਂਦੀ ਹੈ ਜੋ ਤੁਹਾਡੇ ਕੋਲ ਹਨ। ਜੇ ਕੋਈ ਟੈਸਟ ਨਹੀਂ, ਤਾਂ CI ਸਿਰਫ਼ ਇਹ ਸਾਬਤ ਕਰਦਾ ਹੈ ਕਿ ਐਪ ਬਣਦੀ ਹੈ, ਹੋਰ ਕੁਝ ਨਹੀਂ। ਆਪਣੇ AI ਨੂੰ ਉਹਨਾਂ ਫਲੋਆਂ ਲਈ ਟੈਸਟ ਲਿਖਣ ਲਈ ਕਹੋ ਜੋ ਸਭ ਤੋਂ ਅਹਿਮ ਹਨ।
- "CI/CD ਸਿਰਫ਼ ਵੱਡੀਆਂ ਕੰਪਨੀਆਂ ਲਈ ਹੈ।" GitHub Actions ਵਰਗੇ ਹੋਸਟ ਕੀਤੇ ਟੂਲਾਂ ਨੂੰ ਇੱਕ ਛੋਟੀ ਸੰਰਚਨਾ ਫ਼ਾਈਲ ਨਾਲ ਸੈਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਛੋਟੀਆਂ ਟੀਮਾਂ ਇਹ ਹਰ ਰੋਜ਼ ਵਰਤਦੀਆਂ ਹਨ। ਮਿਹਨਤ ਟੂਲਾਂ ਦੀ ਨਹੀਂ, ਟੈਸਟਾਂ ਦੀ ਹੁੰਦੀ ਹੈ।
- "ਆਟੋਮੈਟਿਕ ਡਿਪਲੌਇਮੈਂਟ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਕੋਈ ਕੁਝ ਨਹੀਂ ਜਾਂਚਦਾ।" ਚੰਗੀਆਂ ਪਾਈਪਲਾਈਨਾਂ ਜਾਂਚਾਂ ਘਟਾਉਂਦੀਆਂ ਨਹੀਂ, ਵਧਾਉਂਦੀਆਂ ਹਨ। ਬਹੁਤ ਸਾਰੀਆਂ ਟੀਮਾਂ ਪ੍ਰੋਡਕਸ਼ਨ ਤੋਂ ਪਹਿਲਾਂ ਹੱਥੀਂ ਮਨਜ਼ੂਰੀ ਦਾ ਕਦਮ ਰੱਖਦੀਆਂ ਹਨ।
- "ਜੇ ਪਾਈਪਲਾਈਨ ਹਰੀ ਹੈ, ਤਾਂ ਐਪ ਕੰਮ ਕਰਦੀ ਹੈ।" ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਆਟੋਮੈਟਿਕ ਜਾਂਚਾਂ ਪਾਸ ਹੋਈਆਂ। ਫਿਰ ਵੀ ਤੁਹਾਨੂੰ ਬਦਲਾਅ ਖ਼ੁਦ ਅਜ਼ਮਾਉਣਾ ਚਾਹੀਦਾ ਹੈ, ਆਦਰਸ਼ ਤੌਰ 'ਤੇ ਪ੍ਰੀਵਿਊ ਜਾਂ ਸਟੇਜਿੰਗ 'ਤੇ।
- "CI/CD ਬੈਕਅੱਪ ਦੀ ਥਾਂ ਲੈਂਦਾ ਹੈ।" ਨਹੀਂ ਲੈਂਦਾ। ਇੱਕ ਗ਼ਲਤ ਡੇਟਾਬੇਸ ਮਾਈਗ੍ਰੇਸ਼ਨ ਜੋ ਟੈਸਟ ਪਾਸ ਕਰ ਜਾਂਦੀ ਹੈ ਫਿਰ ਵੀ ਅਸਲ ਡੇਟਾ ਵਿਗਾੜ ਸਕਦੀ ਹੈ। ਬੈਕਅੱਪ ਅਤੇ ਰੋਲਬੈਕ ਦਾ ਤਰੀਕਾ ਰੱਖੋ।
ਆਪਣੇ AI ਬਿਲਡਰ ਤੋਂ ਕੀ ਪੁੱਛੋ
- "ਸਾਈਨ-ਅੱਪ, ਲੌਗਇਨ ਅਤੇ ਚੈੱਕਆਉਟ ਲਈ ਆਟੋਮੈਟਿਕ ਟੈਸਟ ਲਿਖੋ, ਅਤੇ ਦਿਖਾਓ ਕਿ ਉਹਨਾਂ ਨੂੰ ਕਿਵੇਂ ਚਲਾਇਆ ਜਾਵੇ।"
- "ਇੱਕ GitHub Actions ਵਰਕਫ਼ਲੋ ਸੈਟ ਕਰੋ ਜੋ ਹਰ ਪੁੱਲ ਰਿਕਵੈਸਟ 'ਤੇ ਡਿਪੈਂਡੈਂਸੀਆਂ ਇੰਸਟਾਲ ਕਰੇ, ਐਪ ਬਣਾਏ ਅਤੇ ਟੈਸਟ ਚਲਾਏ।"
- "ਪਾਈਪਲਾਈਨ ਵਿੱਚ ਟਾਈਪ ਚੈੱਕ ਅਤੇ ਲਿੰਟਰ ਜੋੜੋ, ਅਤੇ ਗ਼ਲਤੀਆਂ 'ਤੇ ਫ਼ੇਲ੍ਹ ਹੋਣ ਦਿਓ।"
- "ਪਾਈਪਲਾਈਨ ਦਾ ਹਰ ਕਦਮ ਸਾਫ਼ ਪੰਜਾਬੀ ਵਿੱਚ ਸਮਝਾਓ।"
- "ਜੇ ਡਿਪਲੌਇ ਅੱਧ ਵਿਚਕਾਰ ਫ਼ੇਲ੍ਹ ਹੋਵੇ ਤਾਂ ਕੀ ਹੁੰਦਾ ਹੈ? ਮੈਂ ਰੋਲਬੈਕ ਕਿਵੇਂ ਕਰਾਂ?"
- "ਜਾਂਚੋ ਕਿ ਰਿਪੋਜ਼ਟਰੀ ਜਾਂ ਪਾਈਪਲਾਈਨ ਲੌਗਾਂ ਵਿੱਚ ਕੋਈ ਗੁਪਤ ਕੁੰਜੀ ਹਾਰਡ-ਕੋਡ ਜਾਂ ਛਪੀ ਨਹੀਂ ਗਈ।"
ਜੇ ਤੁਹਾਡੀ ਐਪ API ਕੁੰਜੀਆਂ ਵਰਤਦੀ ਹੈ, ਤਾਂ ਪਾਈਪਲਾਈਨ ਨੂੰ ਵੀ ਉਹਨਾਂ ਦੀ ਲੋੜ ਹੈ, ਅਤੇ ਉਹ CI ਟੂਲ ਵਿੱਚ ਇਨਕ੍ਰਿਪਟਡ ਸੀਕਰੇਟਸ ਵਜੋਂ ਰੱਖੀਆਂ ਜਾਂਦੀਆਂ ਹਨ, ਸੰਰਚਨਾ ਫ਼ਾਈਲ ਵਿੱਚ ਕਦੇ ਨਹੀਂ। ਵੇਖੋ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਅਤੇ ਸੀਕਰੇਟਸ।
Mythex ਵਿੱਚ CI/CD
Mythex ਤੁਹਾਡੇ ਲਈ CI ਪਾਈਪਲਾਈਨ ਨਹੀਂ ਚਲਾਉਂਦਾ, ਪਰ ਆਪਣੇ ਤਰੀਕੇ ਨਾਲ ਕਈ ਇਹੀ ਲੋੜਾਂ ਪੂਰੀਆਂ ਕਰਦਾ ਹੈ:
- ਚੈੱਕਪੌਇੰਟ। ਹਰ ਸਫ਼ਲ ਏਜੰਟ ਟਰਨ ਤੋਂ ਬਾਅਦ Mythex ਇੱਕ git ਚੈੱਕਪੌਇੰਟ ਸੰਭਾਲਦਾ ਹੈ, ਅਤੇ Revert to this point ਨਾਲ ਜੇ ਬਦਲਾਅ ਗ਼ਲਤ ਹੋ ਜਾਵੇ ਤਾਂ ਪ੍ਰੋਜੈਕਟ ਵਾਪਸ ਲਿਆਂਦਾ ਜਾ ਸਕਦਾ ਹੈ। ਵੇਖੋ Chat।
- ਐਪ ਟੈਸਟਿੰਗ।
/testਟਾਈਪ ਕਰੋ ਅਤੇ ਏਜੰਟ ਤੁਹਾਡੀ ਲਾਈਵ ਪ੍ਰੀਵਿਊ ਵਿੱਚ ਇੱਕ ਉਪਭੋਗਤਾ ਵਾਂਗ ਕਲਿੱਕ ਕਰਦਾ ਹੈ ਅਤੇ ਟੁੱਟੇ ਫਲੋ ਦੀ ਰਿਪੋਰਟ ਦਿੰਦਾ ਹੈ, ਜੋ ਹਰ ਪ੍ਰਕਾਸ਼ਨ ਤੋਂ ਪਹਿਲਾਂ ਲਾਭਦਾਇਕ ਹੈ। ਵੇਖੋ App Testing। - ਪ੍ਰਕਾਸ਼ਨ ਇੱਕ ਸੋਚ-ਸਮਝ ਕੇ ਕੀਤਾ ਕਦਮ ਹੈ। ਬਦਲਾਅ ਪਹਿਲਾਂ ਨਿੱਜੀ ਪ੍ਰੀਵਿਊ ਵਿੱਚ ਦਿੱਸਦੇ ਹਨ; ਤੁਹਾਡੀ ਜਨਤਕ ਐਪ ਸਿਰਫ਼ ਉਦੋਂ ਅੱਪਡੇਟ ਹੁੰਦੀ ਹੈ ਜਦੋਂ ਤੁਸੀਂ ਦੁਬਾਰਾ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰਦੇ ਹੋ। ਇਹ ਕੰਟੀਨਿਊਅਸ ਡਿਪਲੌਇਮੈਂਟ ਨਾਲੋਂ ਕੰਟੀਨਿਊਅਸ ਡਿਲੀਵਰੀ ਦੇ ਨੇੜੇ ਹੈ।
- GitHub ਸਿੰਕ (Pro)। ਪ੍ਰੋਜੈਕਟ ਨੂੰ GitHub ਰਿਪੋਜ਼ਟਰੀ ਨਾਲ ਸਿੰਕ ਕਰੋ ਅਤੇ ਹਰ ਪੁਸ਼ 'ਤੇ ਟੈਸਟ ਚਲਾਉਣ ਲਈ ਆਪਣੇ GitHub Actions ਵਰਕਫ਼ਲੋ ਜੋੜ ਸਕਦੇ ਹੋ। ਵੇਖੋ GitHub and export।
ਲਾਈਵ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਹੱਥੀਂ ਕੀ ਜਾਂਚਣਾ ਹੈ, ਇਸਦੀ ਚੈੱਕਲਿਸਟ ਲਈ ਲਾਂਚ ਤੋਂ ਪਹਿਲਾਂ ਐਪ ਕਿਵੇਂ ਟੈਸਟ ਕਰੀਏ ਵੇਖੋ, ਅਤੇ ਵਰਜਨ ਕੰਟਰੋਲ ਲਈ AI ਨਾਲ ਬਣੀ ਐਪ ਵਿੱਚ Git ਕਿਵੇਂ ਵਰਤੀਏ ਵੇਖੋ।
ਸਵਾਲ
CI/CD ਦਾ ਕੀ ਮਤਲਬ ਹੈ?
CI ਦਾ ਮਤਲਬ ਹੈ ਕੰਟੀਨਿਊਅਸ ਇੰਟੀਗ੍ਰੇਸ਼ਨ: ਹਰ ਕੋਡ ਬਦਲਾਅ ਅਕਸਰ ਮਿਲਾਇਆ ਜਾਂਦਾ ਹੈ ਅਤੇ ਆਪਣੇ ਆਪ ਬਣਾਇਆ ਤੇ ਟੈਸਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। CD ਦਾ ਮਤਲਬ ਹੈ ਕੰਟੀਨਿਊਅਸ ਡਿਲੀਵਰੀ ਜਾਂ ਕੰਟੀਨਿਊਅਸ ਡਿਪਲੌਇਮੈਂਟ: ਜੋ ਬਦਲਾਅ ਟੈਸਟ ਪਾਸ ਕਰਦੇ ਹਨ ਉਹ ਰਿਲੀਜ਼ ਲਈ ਆਪਣੇ ਆਪ ਤਿਆਰ ਹੁੰਦੇ ਹਨ (ਡਿਲੀਵਰੀ) ਜਾਂ ਬਿਨਾਂ ਹੱਥੀਂ ਕਦਮ ਦੇ ਉਪਭੋਗਤਾਵਾਂ ਤੱਕ ਪਹੁੰਚਦੇ ਹਨ (ਡਿਪਲੌਇਮੈਂਟ)।
ਕੰਟੀਨਿਊਅਸ ਡਿਲੀਵਰੀ ਅਤੇ ਕੰਟੀਨਿਊਅਸ ਡਿਪਲੌਇਮੈਂਟ ਵਿੱਚ ਕੀ ਫ਼ਰਕ ਹੈ?
ਕੰਟੀਨਿਊਅਸ ਡਿਲੀਵਰੀ ਵਿੱਚ, ਹਰ ਬਦਲਾਅ ਜੋ ਪਾਈਪਲਾਈਨ ਪਾਸ ਕਰਦਾ ਹੈ ਰਿਲੀਜ਼ ਲਈ ਤਿਆਰ ਹੁੰਦਾ ਹੈ, ਪਰ ਉਸਨੂੰ ਲਾਈਵ ਕਦੋਂ ਕਰਨਾ ਹੈ ਇਹ ਅਜੇ ਵੀ ਇੱਕ ਵਿਅਕਤੀ ਤੈਅ ਕਰਦਾ ਹੈ। ਕੰਟੀਨਿਊਅਸ ਡਿਪਲੌਇਮੈਂਟ ਵਿੱਚ, ਹਰ ਪਾਸ ਹੋਇਆ ਬਦਲਾਅ ਆਪਣੇ ਆਪ ਲਾਈਵ ਹੋ ਜਾਂਦਾ ਹੈ, ਬਿਨਾਂ ਕਿਸੇ ਮਨੁੱਖੀ ਮਨਜ਼ੂਰੀ ਦੇ।
ਕੀ AI ਨਾਲ ਬਣੀ ਛੋਟੀ ਐਪ ਲਈ CI/CD ਦੀ ਲੋੜ ਹੈ?
ਪਹਿਲੇ ਦਿਨ ਨਹੀਂ। ਕੁਝ ਕੁ ਉਪਭੋਗਤਾਵਾਂ ਵਾਲੀ ਛੋਟੀ ਐਪ ਪ੍ਰੀਵਿਊ ਵਿੱਚ ਟੈਸਟਿੰਗ ਅਤੇ ਹੱਥੀਂ ਪ੍ਰਕਾਸ਼ਨ ਨਾਲ ਚੱਲ ਸਕਦੀ ਹੈ। CI/CD ਉਦੋਂ ਲਾਭਦਾਇਕ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਕਈ ਲੋਕ ਕੋਡ ਬਦਲਣ ਲੱਗਦੇ ਹਨ, ਜਦੋਂ ਅਸਲ ਗਾਹਕ ਐਪ 'ਤੇ ਨਿਰਭਰ ਹੁੰਦੇ ਹਨ, ਜਾਂ ਜਦੋਂ ਪਹਿਲਾਂ ਚੱਲਦਾ ਕੰਮ ਵਾਰ-ਵਾਰ ਟੁੱਟਣ ਲੱਗਦਾ ਹੈ।
CI/CD ਲਈ ਕਿਹੜੇ ਟੂਲ ਵਰਤੇ ਜਾਂਦੇ ਹਨ?
ਆਮ ਟੂਲਾਂ ਵਿੱਚ GitHub Actions, GitLab CI/CD, CircleCI ਅਤੇ Jenkins ਸ਼ਾਮਲ ਹਨ, ਨਾਲ ਹੀ ਹੋਸਟਿੰਗ ਪਲੇਟਫਾਰਮਾਂ ਦੀਆਂ ਬਣੀਆਂ ਡਿਪਲੌਇ ਪਾਈਪਲਾਈਨਾਂ। ਇਹ ਸਾਰੇ ਇੱਕੋ ਬੁਨਿਆਦੀ ਕੰਮ ਕਰਦੇ ਹਨ: ਜਦੋਂ ਵੀ ਕੋਡ ਬਦਲੇ, ਕਦਮਾਂ ਦੀ ਸੂਚੀ ਆਪਣੇ ਆਪ ਚਲਾਉਣਾ।