Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 12 additions & 8 deletions .github/workflows/back-end-ci-cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,13 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v1
with:
dotnet-version: 5.0.101
dotnet-version: 6.0.x
- name: Build
run: dotnet build 'FrontEndBackEndDemo.Api/FrontEndBackEndDemo.Api.csproj' --configuration Release
- name: Publish
run: dotnet publish 'FrontEndBackEndDemo.Api/FrontEndBackEndDemo.Api.csproj' --configuration Release -o 'publish/app'
- name: Docker build
run: docker build -f 'FrontEndBackEndDemo.Api/Dockerfile' -t 45862391/frontendbackenddemo-backend:1.0.2 .

github-docker-push:
if: ${{ github.event_name == 'push' }}
Expand All @@ -34,15 +38,15 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v1
with:
dotnet-version: 5.0.101
dotnet-version: 6.0.x
- name: Publish
run: dotnet publish 'FrontEndBackEndDemo.Api/FrontEndBackEndDemo.Api.csproj' --configuration Release -o 'publish/app'
- name: Docker build
run: docker build -f 'FrontEndBackEndDemo.Api/Dockerfile' -t docker.pkg.github.com/arnab-developer/frontendbackenddemo/backend:1.0.1 .
run: docker build -f 'FrontEndBackEndDemo.Api/Dockerfile' -t docker.pkg.github.com/arnab-developer/frontendbackenddemo/backend:1.0.2 .
- name: Docker push
run: |
echo "${{ secrets.GITHUB_TOKEN }}" | docker login https://docker.pkg.github.com -u Arnab-Developer --password-stdin
docker push docker.pkg.github.com/arnab-developer/frontendbackenddemo/backend:1.0.1
docker push docker.pkg.github.com/arnab-developer/frontendbackenddemo/backend:1.0.2
docker logout https://docker.pkg.github.com

dockerhub-push:
Expand All @@ -59,13 +63,13 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v1
with:
dotnet-version: 5.0.101
dotnet-version: 6.0.x
- name: Publish
run: dotnet publish 'FrontEndBackEndDemo.Api/FrontEndBackEndDemo.Api.csproj' --configuration Release -o 'publish/app'
- name: Docker build
run: docker build -f 'FrontEndBackEndDemo.Api/Dockerfile' -t 45862391/frontendbackenddemo-backend:1.0.1 .
run: docker build -f 'FrontEndBackEndDemo.Api/Dockerfile' -t 45862391/frontendbackenddemo-backend:1.0.2 .
- name: Docker push
run: |
echo "${{ secrets.DOCKERHUB_PWD }}" | docker login -u 45862391 --password-stdin
docker push 45862391/frontendbackenddemo-backend:1.0.1
docker logout
docker push 45862391/frontendbackenddemo-backend:1.0.2
docker logout
18 changes: 11 additions & 7 deletions .github/workflows/front-end-ci-cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,13 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v1
with:
dotnet-version: 5.0.101
dotnet-version: 6.0.x
- name: Build
run: dotnet build 'FrontEndBackEndDemo.Web/FrontEndBackEndDemo.Web.csproj' --configuration Release
- name: Publish
run: dotnet publish 'FrontEndBackEndDemo.Web/FrontEndBackEndDemo.Web.csproj' --configuration Release -o 'publish/app'
- name: Docker build
run: docker build -f 'FrontEndBackEndDemo.Web/Dockerfile' -t docker.pkg.github.com/arnab-developer/frontendbackenddemo/frontend:1.0.2 .

github-docker-push:
if: ${{ github.event_name == 'push' }}
Expand All @@ -34,15 +38,15 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v1
with:
dotnet-version: 5.0.101
dotnet-version: 6.0.x
- name: Publish
run: dotnet publish 'FrontEndBackEndDemo.Web/FrontEndBackEndDemo.Web.csproj' --configuration Release -o 'publish/app'
- name: Docker build
run: docker build -f 'FrontEndBackEndDemo.Web/Dockerfile' -t docker.pkg.github.com/arnab-developer/frontendbackenddemo/frontend:1.0.1 .
run: docker build -f 'FrontEndBackEndDemo.Web/Dockerfile' -t docker.pkg.github.com/arnab-developer/frontendbackenddemo/frontend:1.0.2 .
- name: Docker push
run: |
echo "${{ secrets.GITHUB_TOKEN }}" | docker login https://docker.pkg.github.com -u Arnab-Developer --password-stdin
docker push docker.pkg.github.com/arnab-developer/frontendbackenddemo/frontend:1.0.1
docker push docker.pkg.github.com/arnab-developer/frontendbackenddemo/frontend:1.0.2
docker logout https://docker.pkg.github.com

dockerhub-push:
Expand All @@ -59,13 +63,13 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v1
with:
dotnet-version: 5.0.101
dotnet-version: 6.0.x
- name: Publish
run: dotnet publish 'FrontEndBackEndDemo.Web/FrontEndBackEndDemo.Web.csproj' --configuration Release -o 'publish/app'
- name: Docker build
run: docker build -f 'FrontEndBackEndDemo.Web/Dockerfile' -t 45862391/frontendbackenddemo-frontend:1.0.1 .
run: docker build -f 'FrontEndBackEndDemo.Web/Dockerfile' -t 45862391/frontendbackenddemo-frontend:1.0.2 .
- name: Docker push
run: |
echo "${{ secrets.DOCKERHUB_PWD }}" | docker login -u 45862391 --password-stdin
docker push 45862391/frontendbackenddemo-frontend:1.0.1
docker push 45862391/frontendbackenddemo-frontend:1.0.2
docker logout
42 changes: 19 additions & 23 deletions FrontEndBackEndDemo.Api/Controllers/WeatherForecastController.cs
Original file line number Diff line number Diff line change
@@ -1,30 +1,26 @@
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;

namespace FrontEndBackEndDemo.Api.Controllers
namespace FrontEndBackEndDemo.Api.Controllers;

[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
private static readonly string[] _summaries = new[]
{
private static readonly string[] _summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};

[HttpGet]
public IEnumerable<WeatherForecast> Get()
[HttpGet]
public IEnumerable<WeatherForecast> Get()
{
var rng = new Random();
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
var rng = new Random();
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateTime.Now.AddDays(index),
TemperatureC = rng.Next(-20, 55),
Summary = _summaries[rng.Next(_summaries.Length)]
})
.ToArray();
}
Date = DateTime.Now.AddDays(index),
TemperatureC = rng.Next(-20, 55),
Summary = _summaries[rng.Next(_summaries.Length)]
})
.ToArray();
}
}
}
2 changes: 1 addition & 1 deletion FrontEndBackEndDemo.Api/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM mcr.microsoft.com/dotnet/aspnet:5.0
FROM mcr.microsoft.com/dotnet/aspnet:6.0
COPY publish/app/ ./app
WORKDIR /app
ENTRYPOINT ["dotnet", "FrontEndBackEndDemo.Api.dll"]
6 changes: 3 additions & 3 deletions FrontEndBackEndDemo.Api/FrontEndBackEndDemo.Api.csproj
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
<LangVersion>9</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.1.3" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" />
</ItemGroup>

</Project>
28 changes: 11 additions & 17 deletions FrontEndBackEndDemo.Api/Program.cs
Original file line number Diff line number Diff line change
@@ -1,20 +1,14 @@
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddControllers();

namespace FrontEndBackEndDemo.Api
WebApplication app = builder.Build();
if (app.Environment.IsDevelopment())
{
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
app.UseSwagger();
app.UseSwaggerUI();
}
app.MapControllers();

app.Run();
50 changes: 0 additions & 50 deletions FrontEndBackEndDemo.Api/Startup.cs

This file was deleted.

23 changes: 10 additions & 13 deletions FrontEndBackEndDemo.Api/WeatherForecast.cs
Original file line number Diff line number Diff line change
@@ -1,20 +1,17 @@
using System;
namespace FrontEndBackEndDemo.Api;

namespace FrontEndBackEndDemo.Api
public class WeatherForecast
{
public class WeatherForecast
{
public DateTime Date { get; set; }
public DateTime Date { get; set; }

public int TemperatureC { get; set; }
public int TemperatureC { get; set; }

public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);

public string Summary { get; set; }
public string Summary { get; set; }

public WeatherForecast()
{
Summary = string.Empty;
}
public WeatherForecast()
{
Summary = string.Empty;
}
}
}
73 changes: 34 additions & 39 deletions FrontEndBackEndDemo.Web/Controllers/HomeController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,53 +2,48 @@
using FrontEndBackEndDemo.Web.Options;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Net.Http;
using System.Text.Json;
using System.Threading.Tasks;

namespace FrontEndBackEndDemo.Web.Controllers
namespace FrontEndBackEndDemo.Web.Controllers;

public class HomeController : Controller
{
public class HomeController : Controller
{
private readonly IHttpClientFactory _httpClientFactory;
private readonly IOptionsMonitor<BackEndOptions> _backEndOptionOptionsAccessor;
private readonly IHttpClientFactory _httpClientFactory;
private readonly IOptionsMonitor<BackEndOptions> _backEndOptionOptionsAccessor;

public HomeController(
IHttpClientFactory httpClientFactory,
IOptionsMonitor<BackEndOptions> backEndOptionOptionsAccessor)
{
_httpClientFactory = httpClientFactory;
_backEndOptionOptionsAccessor = backEndOptionOptionsAccessor;
}
public HomeController(
IHttpClientFactory httpClientFactory,
IOptionsMonitor<BackEndOptions> backEndOptionOptionsAccessor)
{
_httpClientFactory = httpClientFactory;
_backEndOptionOptionsAccessor = backEndOptionOptionsAccessor;
}

public async Task<IActionResult> Index()
public async Task<IActionResult> Index()
{
HttpClient httpClient = _httpClientFactory.CreateClient();
HttpResponseMessage backEndApiResponseMessage = await httpClient.GetAsync(
_backEndOptionOptionsAccessor.CurrentValue.BackEndApiEndPoint);
if (backEndApiResponseMessage.IsSuccessStatusCode)
{
HttpClient httpClient = _httpClientFactory.CreateClient();
HttpResponseMessage backEndApiResponseMessage = await httpClient.GetAsync(
_backEndOptionOptionsAccessor.CurrentValue.BackEndApiEndPoint);
if (backEndApiResponseMessage.IsSuccessStatusCode)
{
using Stream backEndApiResponseStream =
await backEndApiResponseMessage.Content.ReadAsStreamAsync();
IEnumerable<WeatherForecast>? weatherForecast =
await JsonSerializer.DeserializeAsync<IEnumerable<WeatherForecast>>(backEndApiResponseStream);
return View(weatherForecast);
}
return NotFound();
using Stream backEndApiResponseStream =
await backEndApiResponseMessage.Content.ReadAsStreamAsync();
IEnumerable<WeatherForecast>? weatherForecast =
await JsonSerializer.DeserializeAsync<IEnumerable<WeatherForecast>>(backEndApiResponseStream);
return View(weatherForecast);
}
return NotFound();
}

public IActionResult Privacy()
{
return View();
}
public IActionResult Privacy()
{
return View();
}

[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
}
}
2 changes: 1 addition & 1 deletion FrontEndBackEndDemo.Web/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM mcr.microsoft.com/dotnet/aspnet:5.0
FROM mcr.microsoft.com/dotnet/aspnet:6.0
COPY publish/app/ ./app
WORKDIR /app
ENTRYPOINT ["dotnet", "FrontEndBackEndDemo.Web.dll"]
Loading