?? Why Technical Literacy Matters in Tech Leadership
Peter Sigurdson
Professor of Business IT Technology, Ontario College System | Serial Entrepreneur | Realtor with EXPRealty
As a seasoned developer and educator, I've observed a consistent pattern: technical teams respond more positively to leaders who understand their craft.
Whether you're managing developers, leading projects, or recruiting tech talent, having hands-on experience with modern development tools isn't just beneficial — it's crucial for earning respect and making informed decisions.
That's why I'm sharing this practical lab on GitHub CLI and CI/CD pipelines.
In just 10 minutes, you'll get hands-on experience with the tools your teams use daily.
This isn't about becoming a full-stack developer; it's about speaking the language of your technical teams and understanding their workflows.
This lab is part of my ongoing commitment to help tech leaders stay relevant.
I regularly share bite-sized, practical content that bridges the gap between management and technical implementation.
Follow along to build your technical literacy and strengthen your leadership position.
Let's dive into the lab, and remember: post your questions or success stories in the comments.
Your journey to technical competency starts with this simple step.
#TechLeadership #DevOps #ContinuousLearning #SoftwareDevelopment
Building a Modern CI/CD Pipeline: A Hands-on Lab with GitHub CLI and TypeScript
This comprehensive lab guide walks you through creating a complete CI/CD pipeline using GitHub's new CLI tool and TypeScript.
Let's dive in!
Environment Setup
Install Required Tools:
bash
# Install GitHub CLI winget install GitHub.CLI # Install Node and TypeScript npm install -g typescript npm install -g jest @types/jest
Project Initialization
Create Project Structure:
bash
mkdir cicd-lab cd cicd-lab npm init -y npm install typescript @types/node --save-dev npx tsc --init
Create TypeScript Calculator:
typescript
// src/calculator.ts export class Calculator { add(a: number, b: number): number { return a + b; } multiply(a: number, b: number): number { return a * b; } }
Add Test File:
typescript
// tests/calculator.test.ts import { Calculator } from '../src/calculator'; describe('Calculator', () => { const calc = new Calculator(); test('adds two numbers correctly', () => { expect(calc.add(2, 3)).toBe(5); }); test('multiplies two numbers correctly', () => { expect(calc.multiply(2, 3)).toBe(6); }); });
Git Repository Setup
Initialize and Configure:
bash
git init git branch -M main gh auth login gh repo create cicd-typescript-demo --public --source=. --remote=origin
Create GitHub Actions Workflow:
text
# .github/workflows/test.yml name: Run Tests on: [push] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Setup Node.js uses: actions/setup-node@v2 with: node-version: '16' - run: npm install - run: npm test
Working with GitHub CLI
Managing Pull Requests:
bash
# Create feature branch git checkout -b feature/new-calculation # Make changes and commit git add . git commit -m "Add new calculation feature" # Create PR gh pr create --title "Add new calculation feature" --body "Implements new math operations"
Review and Merge:
bash
# List PRs gh pr list # Review specific PR gh pr review [PR-NUMBER] --approve # Merge PR gh pr merge [PR-NUMBER] --squash
Running Tests
Configure Jest:
json
// package.json { "scripts": { "test": "jest", "build": "tsc" } }
Execute Tests:
bash
npm test
Best Practices
Troubleshooting
If you encounter authentication issues:
bash
gh auth status gh auth refresh
For repository synchronization issues:
bash
gh repo sync git pull origin main
This lab demonstrates the power of modern DevOps tools while providing hands-on experience with TypeScript and automated testing. The GitHub CLI simplifies many common tasks, making the development workflow more efficient and enjoyable.