meysamhadeli c8c81a6f10 refactor
2023-01-26 03:02:13 +03:30

83 lines
3.4 KiB
YAML

name: CI
on:
push:
branches: [ "main" , "develop" ]
paths-ignore:
- "README.md"
pull_request:
branches: [ "main" , "develop" ]
paths-ignore:
- "README.md"
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Update Release Drafter
id: last_release
uses: release-drafter/release-drafter@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: "Print result"
run: |
echo "tag_name: ${{ steps.last_release.outputs.tag_name }}"
echo "name: ${{ steps.last_release.outputs.name }}"
echo "id: ${{ steps.last_release.outputs.id }}"
echo "body: ${{ steps.last_release.outputs.body }}"
echo "body: ${{ steps.last_release.outputs.html_url }}"
echo "body: ${{ steps.last_release.inputs.version }}"
echo "branch: ${{ github.ref }}"
- name: Login to DockerHub
uses: docker/login-action@v2
if: ${{ github.ref == 'refs/heads/main' && success() && steps.last_release.outputs.tag_name != '' }}
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Setup .NET
uses: actions/setup-dotnet@v2
with:
dotnet-version: 7.0.x
- name: Cache NuGet Packages
uses: actions/cache@v3
with:
key: ${{ runner.os }}-dotnet-nuget
path: ~/.nuget/packages
- name: Restore dependencies
run: dotnet restore
- name: Build
run: dotnet build -c Release --no-restore
- name: Test
run: dotnet test -c Release --no-restore
##ref: https://docs.docker.com/language/golang/configure-ci-cd/
##ref: https://event-driven.io/en/how_to_buid_and_push_docker_image_with_github_actions
- name: Build Docker Image
if: ${{ github.ref == 'refs/heads/main' && success() && steps.last_release.outputs.tag_name != '' }}
run: |
docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/booking-microservices-flight:${{ steps.last_release.outputs.tag_name }} -f "${{ github.workspace }}/src/Services/Flight/Dockerfile" .
docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/booking-microservices-identity:${{ steps.last_release.outputs.tag_name }} -f "${{ github.workspace }}/src/Services/Identity/Dockerfile" .
docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/booking-microservices-passenger:${{ steps.last_release.outputs.tag_name }} -f "${{ github.workspace }}/src/Services/Passenger/Dockerfile" .
docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/booking-microservices-booking:${{ steps.last_release.outputs.tag_name }} -f "${{ github.workspace }}/src/Services/Booking/Dockerfile" .
- name: Publish Docker Image
if: ${{ github.ref == 'refs/heads/main' && success() && steps.last_release.outputs.tag_name != '' }}
run: |
docker push ${{ secrets.DOCKERHUB_USERNAME }}/booking-microservices-flight:${{ steps.last_release.outputs.tag_name }}
docker push ${{ secrets.DOCKERHUB_USERNAME }}/booking-microservices-identity:${{ steps.last_release.outputs.tag_name }}
docker push ${{ secrets.DOCKERHUB_USERNAME }}/booking-microservices-passenger:${{ steps.last_release.outputs.tag_name }}
docker push ${{ secrets.DOCKERHUB_USERNAME }}/booking-microservices-booking:${{ steps.last_release.outputs.tag_name }}