diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..add983a1c --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,80 @@ +name: CI + +on: + push: + branches: [main] + paths: + - 'app/**' + - '.github/workflows/ci.yml' + pull_request: + branches: [main] + paths: + - 'app/**' + - '.github/workflows/ci.yml' + +permissions: + contents: read + +jobs: + vet: + name: Vet (${{ matrix.go-version }}) + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + go-version: ['1.23', '1.24'] + defaults: + run: + working-directory: app + steps: + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.2.2 + - uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0 + with: + go-version: ${{ matrix.go-version }} + cache: true + cache-dependency-path: app/go.sum + - run: go vet ./... + + test: + name: Test (${{ matrix.go-version }}) + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + go-version: ['1.23', '1.24'] + defaults: + run: + working-directory: app + steps: + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.2.2 + - uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0 + with: + go-version: ${{ matrix.go-version }} + cache: true + cache-dependency-path: app/go.sum + - run: go test -race -count=1 ./... + + lint: + name: Lint + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.2.2 + - uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0 + with: + go-version: '1.24' + cache: true + cache-dependency-path: app/go.sum + - name: Run golangci-lint + uses: golangci/golangci-lint-action@82606bf257cbaff209d206a39f5134f0cfbfd2ee # v9.2.1 + with: + version: v2.5.0 + working-directory: app + + ci-ok: + name: CI OK + if: always() + needs: [vet, test, lint] + runs-on: ubuntu-24.04 + steps: + - run: | + test "${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}" = "false" diff --git a/app/go.mod b/app/go.mod index b76e91cf9..60ef39dde 100644 --- a/app/go.mod +++ b/app/go.mod @@ -1,3 +1,3 @@ module quicknotes -go 1.24 +go 1.23 diff --git a/app/index.html b/app/index.html new file mode 100644 index 000000000..ece7bac66 --- /dev/null +++ b/app/index.html @@ -0,0 +1,545 @@ + + +
+ + +Master modern DevOps practices through hands-on labs covering Git, CI/CD, Containers, Kubernetes, Cloud & WASM
+This comprehensive course provides a solid foundation in modern DevOps practices through practical, hands-on experience. You'll learn industry-standard tools and workflows used by leading tech companies.
+ +Every concept is reinforced through practical labs. Build real projects and submit them via GitHub Pull Requests for review.
+ 12 Comprehensive Labs +Work with production-grade tools: Docker, Kubernetes, GitHub Actions, Terraform, Ansible, Prometheus, and more.
+ 15+ Technologies +Learn GitOps, Progressive Delivery, SRE principles, Infrastructure as Code, and emerging technologies like WebAssembly.
+ Cutting-Edge Topics +Master DevOps through 12 progressive hands-on labs, each building real-world skills with production-grade tools.
+ +Master Git branching strategies, collaborative workflows, pull requests, and version control best practices.
+Build automated CI/CD pipelines with GitHub Actions for testing, building, and deploying applications.
+Learn Docker containerization, write Dockerfiles, and implement multi-stage builds for optimized images.
+Orchestrate multi-container applications with Docker Compose, manage networks and volumes.
+Deploy applications to Kubernetes, work with pods, services, and ingress controllers.
+Master ConfigMaps, Secrets, Helm charts, and advanced Kubernetes resource management.
+Implement Infrastructure as Code with Terraform, manage cloud resources declaratively.
+Automate configuration management with Ansible playbooks, roles, and inventory management.
+Set up observability with Prometheus for metrics collection and Grafana for visualization.
+Implement GitOps workflows using ArgoCD for declarative, Git-based application delivery.
+Integrate security scanning, vulnerability detection, and automated security testing into CI/CD.
+Compare WebAssembly containers with traditional Docker, deploy to Spin Cloud for serverless WASM.
+Each lab is designed to build practical skills through real-world scenarios. Submit your work via Pull Requests for instructor review and feedback.
+All course materials, lab instructions, and submission guidelines are available on GitHub.
+ ++ Fork the repository, follow the lab instructions, and submit your work via Pull Requests. Get hands-on experience with industry-standard DevOps practices. +
+ + π + Access Course Repository + +Detailed step-by-step guides for each lab with acceptance criteria and submission guidelines.
+Use GitHub Issues for questions and Discussions for course-related conversations.
+Receive detailed feedback on your Pull Requests and track your progress through the course.
+