From 37642a1e0d2257c2316b171dd4a5dc9ab86556cc Mon Sep 17 00:00:00 2001 From: ismoilovdevml Date: Thu, 1 Feb 2024 20:25:39 +0500 Subject: [PATCH] [NEW] Github Actions --- .github/workflows/ci-cd.yml | 57 + .../config/applicationhost.config | 1011 ----------------- .vs/GitHub.Actions/v17/.suo | Bin 20992 -> 0 bytes API.Dockerfile | 14 + README.md | 1 + UI.Dockerfile | 14 + 6 files changed, 86 insertions(+), 1011 deletions(-) create mode 100644 .github/workflows/ci-cd.yml delete mode 100644 .vs/GitHub.Actions/config/applicationhost.config delete mode 100644 .vs/GitHub.Actions/v17/.suo create mode 100644 API.Dockerfile create mode 100644 README.md create mode 100644 UI.Dockerfile diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml new file mode 100644 index 0000000..5a3e117 --- /dev/null +++ b/.github/workflows/ci-cd.yml @@ -0,0 +1,57 @@ +name: Docker CI/CD + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +env: + API_IMAGE_NAME: github-api + API_CONTAINER_NAME: github-api + UI_IMAGE_NAME: github-ui + UI_CONTAINER_NAME: github-ui + + REPO_NAME: ${{ github.repository }} + REGISTRY: ghcr.io + +jobs: + build_and_push: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to the Container registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push API Docker image + uses: docker/build-push-action@v5 + with: + context: . + file: ./API.Dockerfile + push: true + tags: ${{ env.REGISTRY }}/${{ env.REPO_NAME}}/${{ env.API_IMAGE_NAME }}:${{ github.sha }} + cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.REPO_NAME}}/${{ env.API_IMAGE_NAME }}:buildcache + cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.REPO_NAME}}/${{ env.API_IMAGE_NAME }}:buildcache,mode=max + + - name: Build and push UI Docker image + uses: docker/build-push-action@v5 + with: + context: . + file: ./UI.Dockerfile + push: true + tags: ${{ env.REGISTRY }}/${{ env.REPO_NAME}}/${{ env.UI_IMAGE_NAME }}:${{ github.sha }} + cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.REPO_NAME}}/${{ env.UI_IMAGE_NAME }}:buildcache + cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.REPO_NAME}}/${{ env.UI_IMAGE_NAME }}:buildcache,mode=max + \ No newline at end of file diff --git a/.vs/GitHub.Actions/config/applicationhost.config b/.vs/GitHub.Actions/config/applicationhost.config deleted file mode 100644 index fd8a833..0000000 --- a/.vs/GitHub.Actions/config/applicationhost.config +++ /dev/null @@ -1,1011 +0,0 @@ - - - - - - - - -
-
-
-
-
-
-
-
- - - -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
- -
-
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
- -
-
- -
-
-
- - -
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.vs/GitHub.Actions/v17/.suo b/.vs/GitHub.Actions/v17/.suo deleted file mode 100644 index 961e198c0344cd6297f36d6cfc25f2eb7d73ab3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20992 zcmeHPU5s5-72dZ61q&jUAH~`ZWh@As;r!iu&z&mFPiH7ee@1575~<+%yVJpTrp`<$ zq}CXt#20-NHPJ)~ycj}K(1-vum9^W&fW4i(Gl(yo5gzF(jtMBHqj5NlvA9xJg`jY0kIxsP*%2Z-08np*Jhn zqukghlfpB=xFjAE4*+`;u_^IHk5<~VZvsbV$=#lt|Fsv%U|$&&e&RhTj-v<5A_mNY z7Cs_0N~g@2DktAt`+6TBMxi|35HOqC%GHU&+ zeJ;Cp^Va`IQIG4Nb-DieR_p(&^qXl#;p3X+irN_D6;puos0*CO&aynqJJZxR&kCLy z>MT%a0QY~E8A{(f@xBc(4EP*i7l3?s2jKI7I{|kA?gkiu5x_kF6JP;s0NZo%t^#U+ zI^c_d24EDh8}J1H%iW9jeSk5*IA8)W2~hp+e51;THXM;sM+CX&wAc@cXAv+jC7=<| z+E_9113;uyxiB**(8(n0{`;V+?olm{2^ToL>5CPiAo1O6d=Dh6rgbdQn0RPH#a zNx5?Y7%6Wqpbv{u8eTzs9=%%4P+Qe%z3=FQ{-l)}{~WNK6f<&+#K_TcI-g{IZ zW+kUnE>C9TASk5bEzVC`bNj&0n!GD-R468AQ#afwhz-vU@acPj=XkzZZQ9@Z?uFqfh^lc=uNn1b z(=*(->KlF|@C@4uOtbFR?6BV4d|}uP1E=QIYKCcsO#{hw!?(@IsC$0ZvYeV-wXMp9 zVbgLNmK)WL$gbJI>f46b^j(S7jUC(btr)E}YE7%@#GcWtvsf6RSR6Hsniq$5H3UxE zMzO%NO}kn1jL1)Fm%sO+%r2jYB|=ZsawH71ydFe-DVv7 zK1O7L8Nqulpe`@LZ%QIDX{FGO^;h&as9!a@`@&|Dj1&m+n zf7Qw_Dy#CS6Ya)-E&NYn&z}ETd9U;SHzR4WDCc1swD6^r z*v^fhzrj7jpU^qmvYi?^NMYrgfm(vgE|#m{^wn3F0J3W|0g&T ztrJh;L_b2!4DDmoMJ=Z_lb726%kV$X-t_t>rh#D!w^$d?N$5HZ;o!?cx`C&K^T`p9 zLO+sNDQD4xcB>%tUlr=Qsk_u2KhGYu{`BzAp+Ec4KYxu3!tqnDPMJa%Kl`i3Ke+#I z%>AG9sZ0M2zW+pzz=+8Z^AN+|2kMir0 zO3_p^+A+``pNTrJe0{E)z7VGUSzG_)SdXr@Wm67o$6u~Kd5o|>GU=~+0ZfOB|uM%9m3R~HuNS9Xq`IeRu$&$iXbOMClwFP_3}ztZum;-R+tE7}hSeDJ$YA?l;tL9EA>n(#u|G5dzpR$7MdP3zZD# z^lUh%fI7#gVC6izX7|>?FT@zy?YI7-9A(n6f8PGQ-C74Zoy|$&UGQP?m7E;Cq_X%r zTm9;}&3}INFQ*SY`@&Pl*?;oLyAMD7hWAqVzz=@?s(JI@xBQzpRxnT7@+J{^-1{lh zUFyqIl~_*4$y97?vBT+<9p)uF922Lg3+b%CmP<(GeEba{P4}=(`5jDbSl#NQ9~7-u z#Bko=R3A$S4I9?G86Wsypf-)dod+yC&p5OZ1k?WZH&O_hZ`J1WdN8bp4{I4f?JwV8>KLK)v z(00=PMIGlNWWarhQ6AibC+|B&LCIhJ%Afi6KQ*aEme-_LBYo(fsIO7_pH6vKjh*`M z&b}!E8Ht8-%l7?&{r z)bcOmz4nHS!UbU)@Y82!D?k_jG|JwQwmAp9E5NI?d$Z8F@s7U=uA~LN*9}DZ-_oB! z7ylH>D*f*`=9zSV5}4@yFe|qe>iZ1L$t2E22Y=(x^EdFU!?&p2Cd~QYiT3E{q>FzK z$}0Q6(swVX{h9=zMiVm7|7I6r#LbW<7rwIhpS+zyfbO(*sI@^)s-(ZW z#-8I*7jXK!tN?w@PxTcD^ZX*~gIk0VA+OdWp)zFfc*VjfD> zkUtIoE*p8{h&za#g)9}pX5NlB*)@`0Cs?^U+RLc1B}X&MUM1<69ou^Qwp)6cZDflh zpuDn|eFIcj1m6yU7Bk`yDAB}xaL1QT%<@9^<(odGM z3MIH$ls%8AQ9Xk*%*LtC6QAck?JpBD?jV-fUnm_=3b61@?oH#67$zZ)nW)J>$^yM5 z0iessA5};a6B4FD0RwGNp79WK(Q*xON*z-u)QutxlsDh$FYx0LXMqB z8YOaiwRGon{HEht`VsRkKkS*l-wfb)X~%WPaGUUzY(#K5jRLJdD93~kvSnpbiAC#=6Q#hy0TKjo9`}@HDKd}Gju+_Sf z2KIk_@(t|&>$Cs=5Tt(p?EjTsrt-v1;5BrLn>yj?incFAj~{nG?RvFW#rETb|L#j^fBETe*Q>wN*J5RUkX&^}@+4{i6rSrJ3{UjX#`vS8EavnZ^$|NjA( C44a7n diff --git a/API.Dockerfile b/API.Dockerfile new file mode 100644 index 0000000..efe55e5 --- /dev/null +++ b/API.Dockerfile @@ -0,0 +1,14 @@ +FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build +WORKDIR /app +COPY . . +RUN dotnet restore "GitHub.Actions.API/GitHub.Actions.API.csproj" +WORKDIR "/app/GitHub.Actions.API" +RUN dotnet build "GitHub.Actions.API.csproj" -c Release -o /app/build + +FROM build AS publish +RUN dotnet publish "GitHub.Actions.API.csproj" -c Release -o /app/publish + +FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS runtime +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "GitHub.Actions.API.dll", "--urls=http://0.0.0.0:4001"] \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..eba9b99 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +## Github.Actions \ No newline at end of file diff --git a/UI.Dockerfile b/UI.Dockerfile new file mode 100644 index 0000000..60ab132 --- /dev/null +++ b/UI.Dockerfile @@ -0,0 +1,14 @@ +FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build +WORKDIR /app +COPY . . +RUN dotnet restore "GitHub.Actions/GitHub.Actions.csproj" +WORKDIR "/app/GitHub.Actions" +RUN dotnet build "GitHub.Actions.csproj" -c Release -o /app/build + +FROM build AS publish +RUN dotnet publish "GitHub.Actions.csproj" -c Release -o /app/publish + +FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS runtime +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "GitHub.Actions.dll", "--urls=http://0.0.0.0:4000"] \ No newline at end of file