|
| 1 | +# Lab 3 — CI/CD with GitHub Actions |
| 2 | + |
| 3 | +## Task 1 |
| 4 | + |
| 5 | +### What I did: |
| 6 | +1. Created `.github/workflows/ci.yml` file |
| 7 | +2. Configured trigger on push to "Feature/lab3" branch |
| 8 | +3. Added basic steps to print "Hello World" |
| 9 | + |
| 10 | +### Link to automatic run: |
| 11 | +[click me](https://github.com/r3based/DevOps-Intro/actions/runs/22238266496) |
| 12 | + |
| 13 | +### Key concepts learned: |
| 14 | +- **Workflow** — automated process defined in YAML file |
| 15 | +- **Jobs** — set of steps that execute on the same runner |
| 16 | +- **Steps** — individual commands or actions within a job |
| 17 | +- **Runners** — GitHub-hosted virtual machines (ubuntu-latest) |
| 18 | +- **Triggers** — events that start workflow (push, workflow_dispatch) |
| 19 | + |
| 20 | +### What triggered the run: |
| 21 | +Push commit to `Feature/lab3` branch triggered the workflow automatically. |
| 22 | + |
| 23 | +--- |
| 24 | + |
| 25 | +## Task 2 |
| 26 | + |
| 27 | +### Changes made to workflow: |
| 28 | +- Added `workflow_dispatch` event to enable manual triggering |
| 29 | +- Added "System Information" step to collect runner details |
| 30 | + |
| 31 | +### Link to manual run: |
| 32 | +[click me](https://github.com/r3based/DevOps-Intro/actions/runs/22238835090) |
| 33 | + |
| 34 | +### System information from runner: |
| 35 | + |
| 36 | +```text |
| 37 | +OS Info: |
| 38 | +Linux runnervmwffz4 6.11.0-1018-azure #18~24.04.1-Ubuntu SMP Sat Jun 28 04:46:03 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux |
| 39 | +PRETTY_NAME="Ubuntu 24.04.3 LTS" |
| 40 | +NAME="Ubuntu" |
| 41 | +VERSION_ID="24.04" |
| 42 | +VERSION="24.04.3 LTS (Noble Numbat)" |
| 43 | +VERSION_CODENAME=noble |
| 44 | +ID=ubuntu |
| 45 | +ID_LIKE=debian |
| 46 | +HOME_URL="https://www.ubuntu.com/" |
| 47 | +SUPPORT_URL="https://help.ubuntu.com/" |
| 48 | +BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" |
| 49 | +PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" |
| 50 | +UBUNTU_CODENAME=noble |
| 51 | +LOGO=ubuntu-logo |
| 52 | +CPU Info: |
| 53 | +Architecture: x86_64 |
| 54 | +CPU op-mode(s): 32-bit, 64-bit |
| 55 | +Address sizes: 48 bits physical, 48 bits virtual |
| 56 | +Byte Order: Little Endian |
| 57 | +CPU(s): 4 |
| 58 | +On-line CPU(s) list: 0-3 |
| 59 | +Vendor ID: AuthenticAMD |
| 60 | +Model name: AMD EPYC 7763 64-Core Processor |
| 61 | +CPU family: 25 |
| 62 | +Model: 1 |
| 63 | +Thread(s) per core: 2 |
| 64 | +Core(s) per socket: 2 |
| 65 | +Socket(s): 1 |
| 66 | +Stepping: 1 |
| 67 | +BogoMIPS: 4890.84 |
| 68 | +Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl tsc_reliable nonstop_tsc cpuid extd_apicid aperfmperf tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves user_shstk clzero xsaveerptr rdpru arat npt nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold v_vmsave_vmload umip vaes vpclmulqdq rdpid fsrm |
| 69 | +Virtualization: AMD-V |
| 70 | +Hypervisor vendor: Microsoft |
| 71 | +Virtualization type: full |
| 72 | +L1d cache: 64 KiB (2 instances) |
| 73 | +L1i cache: 64 KiB (2 instances) |
| 74 | +L2 cache: 1 MiB (2 instances) |
| 75 | +L3 cache: 32 MiB (1 instance) |
| 76 | +NUMA node(s): 1 |
| 77 | +NUMA node0 CPU(s): 0-3 |
| 78 | +Vulnerability Gather data sampling: Not affected |
| 79 | +Vulnerability Itlb multihit: Not affected |
| 80 | +Vulnerability L1tf: Not affected |
| 81 | +Vulnerability Mds: Not affected |
| 82 | +Vulnerability Meltdown: Not affected |
| 83 | +Vulnerability Mmio stale data: Not affected |
| 84 | +Vulnerability Reg file data sampling: Not affected |
| 85 | +Vulnerability Retbleed: Not affected |
| 86 | +Vulnerability Spec rstack overflow: Vulnerable: Safe RET, no microcode |
| 87 | +Vulnerability Spec store bypass: Vulnerable |
| 88 | +Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization |
| 89 | +Vulnerability Spectre v2: Mitigation; Retpolines; STIBP disabled; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected |
| 90 | +Vulnerability Srbds: Not affected |
| 91 | +Vulnerability Tsx async abort: Not affected |
| 92 | +Memory Info: |
| 93 | + total used free shared buff/cache available |
| 94 | +Mem: 15Gi 848Mi 13Gi 39Mi 1.8Gi 14Gi |
| 95 | +Swap: 3.0Gi 0B 3.0Gi |
| 96 | +Disk Info: |
| 97 | +Filesystem Size Used Avail Use% Mounted on |
| 98 | +/dev/root 145G 53G 92G 37% / |
| 99 | +tmpfs 7.9G 84K 7.9G 1% /dev/shm |
| 100 | +tmpfs 3.2G 1.1M 3.2G 1% /run |
| 101 | +tmpfs 5.0M 0 5.0M 0% /run/lock |
| 102 | +efivarfs 128M 26K 128M 1% /sys/firmware/efi/efivars |
| 103 | +/dev/sda16 881M 62M 758M 8% /boot |
| 104 | +/dev/sda15 105M 6.2M 99M 6% /boot/efi |
| 105 | +tmpfs 1.6G 12K 1.6G 1% /run/user/1001 |
| 106 | +``` |
| 107 | + |
| 108 | +### Comparison of manual vs automatic triggers: |
| 109 | + |
| 110 | +| Type | How it triggers | Use case | |
| 111 | +|------|-----------------|----------| |
| 112 | +| Automatic (push) | On every push to branch | CI — code validation, testing | |
| 113 | +| Manual (workflow_dispatch) | Button click in GitHub UI | Deployments, releases, debugging | |
| 114 | + |
| 115 | +### Runner environment analysis: |
| 116 | +- **OS:** Ubuntu 24.04.3 LTS (Noble Numbat) |
| 117 | +- **CPU:** AMD EPYC 7763 64-Core Processor, 4 vCPUs (2 cores × 2 threads) |
| 118 | +- **RAM:** 15 GB total, ~13 GB available |
| 119 | +- **Disk:** 145 GB total, 92 GB available |
| 120 | +- **Virtualization:** Microsoft Azure (AMD-V) |
| 121 | + |
| 122 | +GitHub-hosted runners provide powerful virtual machines with pre-installed development tools, making them suitable for most CI/CD tasks. |
0 commit comments