mirror of
https://github.com/meysamhadeli/booking-microservices.git
synced 2026-04-10 17:59:38 +08:00
70 lines
2.5 KiB
YAML
70 lines
2.5 KiB
YAML
# https://docs.github.com/en/actions/creating-actions/creating-a-composite-action
|
|
# https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions
|
|
# https://doug.sh/posts/using-composite-actions-with-github-actions/
|
|
# https://wallis.dev/blog/composite-github-actions
|
|
|
|
name: "Build"
|
|
description: "Build service"
|
|
|
|
# Input parameters allow you to specify data that the action expects to use during runtime. GitHub stores input parameters as environment variables.(so they are just string)
|
|
# https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#inputs
|
|
inputs:
|
|
project-path:
|
|
description: Project path
|
|
required: true
|
|
service-name:
|
|
description: Service name
|
|
required: true
|
|
|
|
# https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runs-for-composite-actions
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
|
|
# https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows
|
|
# https://devblogs.microsoft.com/dotnet/dotnet-loves-github-actions/
|
|
# https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net#caching-dependencies
|
|
- name: Cache NuGet Packages
|
|
uses: actions/cache@v4
|
|
if: success()
|
|
with:
|
|
path: ~/.nuget/packages
|
|
key: ${{ runner.os }}-dotnet-nuget
|
|
|
|
- name: Setup .NET
|
|
uses: actions/setup-dotnet@v4
|
|
with:
|
|
dotnet-version: '9.x.x'
|
|
|
|
# https://learn.microsoft.com/en-us/dotnet/core/tools/global-tools
|
|
- name: Restore .NET Tools
|
|
shell: bash
|
|
run: dotnet tool restore
|
|
|
|
# Note: `Ubuntu` file and folder names are case sensitive, be aware about naming them in solution references. because `Windows` file and folder names as case-insensitive.
|
|
# prevent windows case-insensitive for our project with: git config core.ignorecase false; - https://stackoverflow.com/a/27139487/581476
|
|
- name: Restore NuGet packages
|
|
shell: bash
|
|
if: success()
|
|
# restore root solution
|
|
run: dotnet restore
|
|
|
|
# npm install, runs `prepare` script automatically in the initialize step
|
|
- name: Install NPM Dependencies
|
|
shell: bash
|
|
if: success()
|
|
run: npm install
|
|
|
|
- name: Format Service
|
|
shell: bash
|
|
if: ${{ success()}}
|
|
run: |
|
|
npm run ci-format
|
|
|
|
- name: Build Service
|
|
shell: bash
|
|
if: ${{ success()}}
|
|
working-directory: ${{ inputs.project-path }}
|
|
run: |
|
|
dotnet build -c Release --no-restore
|