Skip to content

Resubmission of project - #3260

Open
Padmalaya26 wants to merge 25 commits into
KTH:2026from
Padmalaya26:2026
Open

Padmalaya26 wants to merge 25 commits into
KTH:2026from
Padmalaya26:2026

Conversation

@Padmalaya26

Copy link
Copy Markdown
Contributor

Assignment Proposal

Title

Project: Automation Pipeline for API Lifecycle using GitHub Actions

Names and KTH ID

Deadline

11 October 2026

Category

Project

Description

Project Overview

The Automation Pipeline for API Lifecycle DevOps Project demonstrates an end-to-end DevOps workflow for designing, validating, testing, deploying, and managing a REST API using an API-first approach. The project uses an OpenAPI specification as the source of truth and integrates Continuous Integration (CI), Continuous Deployment (CD), Infrastructure as Code (IaC), quality automation, and cloud deployment practices within a single GitHub repository.

The API provides weather information for a requested city and is implemented using Node.js and Express. The API contract is defined using OpenAPI 3.0 and is automatically validated, tested, and deployed through GitHub Actions workflows to Azure API Management.

Continuous Integration (CI)

The CI pipeline is implemented using GitHub Actions and is automatically triggered on every push and pull request.

Continuous Deployment (CD) to Azure API Management

The CD pipeline automatically deploys the application package to App Service, imports the OpenAPI definition into Azure API Management (APIM), and updates the APIM backend URL.

CI/CD Workflow

Developer
    │
    ▼
GitHub Repository
    │
    ├── OpenAPI Specification
    ├── Node.js API
    ├── Terraform
    └── GitHub Actions
            │
            ▼
      CI Pipeline
      ├─ OpenAPI Validation
      ├─ Spectral Linting
      ├─ Unit Tests
      ├─ Build Verification
      └─ CodeQL Security Scan
            │
            ▼
      CD Pipeline
      ├─ Deploy Node.js Application
      └─ Deploy OpenAPI Definition
            │
            ▼
      Azure App Service
            │
            ▼
      Azure API Management
            │
            ▼
          Consumers

Infrastructure as Code (IaC)

Infrastructure provisioning is automated using Terraform.

Infrastructure Components

Terraform configuration is in terraform/. It defines:

  • An Azure resource group.
  • An Azure API Management service.
  • A Linux App Service plan.
  • A Linux Web App configured for Node.js 20.

The resource group name and Azure region are variables; outputs include the resource group name, APIM name and gateway URL, and Web App URL. Terraform is not run by the GitHub Actions workflows: provision or update the resources separately, and ensure they exist before deployment. The infrastructure definitions do not configure a remote Terraform state backend.

Final Project submission

GitHub Repository

Repository: https://github.com/Padmalaya26/api-lifecycle-devops

Project report

The report explains the architecture, demonstrated processes, design decisions, component interactions, and project limitations:

GitHub Actions Pipeline

Workflow Location

.github/workflows/
│
├── ci.yml
├── codeql.yml
└── deploy-apim.yml

GitHub workflow runs Example

These links point to recorded GitHub workflow runs:

Previous Pull Request links

Conclusion

This project demonstrates the integration of API-first development, Continuous Integration, Continuous Deployment, Infrastructure as Code, automated testing, security scanning, and cloud deployment within a single DevOps workflow. The solution provides a practical implementation of modern DevOps practices using GitHub, GitHub Actions, Terraform, and Azure API Management.

Expanded project description to include details on CI workflow, API design, and AI-assisted development tools.
Updated the README to clarify project goals and CI practices, including AI-assisted development tools.
minor changes
changed folder name
Changed folder name and added partner name
Expanded the README to include detailed project overview, CI/CD workflows, and infrastructure as code information. Added links to GitHub Actions pipeline reports and concluded with a summary of the project's DevOps practices.
Updated the README to reflect the new project title and details about the Automation Pipeline for API Lifecycle. Added names, deadlines, and project overview while removing outdated course information.
Updated the README to reflect the 2026 edition of the KTH DevOps course, including new schedule, prerequisites, and course details.
Removed redundant text formatting and streamlined links for GitHub repository and pipeline reports.
Updated CI/CD workflows and added detailed descriptions for both Continuous Integration and Continuous Deployment processes. Included links to GitHub workflow runs and previous pull requests.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant