Skip to content

Support game v1.4.6 #65

Support game v1.4.6

Support game v1.4.6 #65

Workflow file for this run

# This is a basic workflow to help you get started with Actions
name: Build
# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the master branch
push:
branches: [ master, beta, test-workflow ]
tags: [ release-v*, release-b*, release-e*]
pull_request:
branches: [ master, beta ]
# will be triggered when undrafting or requesting review
types: [review_requested, ready_for_review]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
env:
# Disable the .NET logo in the console output.
DOTNET_NOLOGO: true
# Disable the .NET first time experience to skip caching NuGet packages and speed up the build.
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
# Disable sending .NET CLI telemetry to Microsoft.
DOTNET_CLI_TELEMETRY_OPTOUT: true
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
Build:
# The type of runner that the job will run on
runs-on: windows-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout Repositiory
uses: actions/checkout@v3.1.0
- name: submodules-init
# You may pin to the exact commit or the version.
# uses: snickerbockers/submodules-init@74927a8bb0fe1bb0f1f1e4d102384a8e69f19171
uses: snickerbockers/submodules-init@v4
- name: Read tag name
uses: olegtarasov/get-tag@v2.1
id: tagName
- name: Read configuration file
id: dotenv
# You may pin to the exact commit or the version.
# uses: falti/dotenv-action@cb77e3cb51b636f6833ceeb6928bf06ff66e82fa
uses: falti/dotenv-action@v0.2.5
with:
# the path to the .env file (including file name)
path: .github/resources/config.env
# whether to log the variables to output or not
log-variables: true # optional, default is false
- name: Set environment variables
run: >-
echo "ARTIFACT_NAME=Improved Combat AI ${{steps.dotenv.outputs.mod_version}} for Bannerlord ${{steps.dotenv.outputs.game_version}}" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
# additional .net core for md2html package.
- name: Setup .NET Core 2.2.x
uses: actions/setup-dotnet@master
with:
dotnet-version: '2.2.x'
# additional .net core for DepotDownloader.
- name: Setup .NET Core 6.0.x
uses: actions/setup-dotnet@master
with:
dotnet-version: '6.0.x'
- name: setup-msbuild
uses: microsoft/setup-msbuild@v1
# with:
# Folder location of where vswhere.exe is located if a self-hosted agent
# vswhere-path: # optional
# Version of Visual Studio to search; defaults to latest if not specified
# vs-version: # optional
- name: Setup NuGet.exe for use with actions
# You may pin to the exact commit or the version.
# uses: NuGet/setup-nuget@04b0c2b8d1b97922f67eca497d7cf0bf17b8ffe1
uses: NuGet/setup-nuget@v1.0.5
- name: Download DepotDownloader_3.4.0
uses: i3h/download-release-asset@v1.3.3
with:
owner: SteamRE
repo: DepotDownloader
tag: DepotDownloader_3.4.0
file: DepotDownloader-windows-x64.zip
- name: Extract DepotDownloader_3.4.0
uses: DuckSoft/extract-7z-action@v1.0
with:
pathSource: DepotDownloader-windows-x64.zip
pathTarget: depotdownloader
- name: Download Bannerlord binaries 1
run: depotdownloader/DepotDownloader.exe -app 261550 -depot 261551 -branch ${{steps.dotenv.outputs.game_version}} -username ${{secrets.STEAM_LOGIN}} -password ${{secrets.STEAM_PASSWORD}} -filelist ./.github/resources/FileFilters.regexp -dir bannerlord;
- name: Download Bannerlord binaries 2
run: depotdownloader/DepotDownloader.exe -app 261550 -depot 261552 -branch ${{steps.dotenv.outputs.game_version}} -username ${{secrets.STEAM_LOGIN}} -password ${{secrets.STEAM_PASSWORD}} -filelist ./.github/resources/FileFilters.regexp -dir bannerlord;
- name: Build Solution
run: >-
nuget restore .\source\ImprovedCombatAI.sln;
MSBuild.exe .\source\ImprovedCombatAI.sln /p:Configuration=Release /p:GamePath="$PWD\bannerlord\";
- name: Generate html files
run: >-
dotnet md2html -i ..\..\README.md -o ..\package\ImprovedCombatAI\README.html;
dotnet md2html -i ..\..\README.zh-CN.md -o ..\package\ImprovedCombatAI\README.zh-CN.html;
dotnet md2html -i ..\..\CHANGELOG.md -o ..\package\ImprovedCombatAI\CHANGELOG.html;
working-directory: .\source\ImprovedCombatAI\
- name: Upload a Build Artifact
uses: actions/upload-artifact@v4
with:
# Artifact name
name: ${{env.ARTIFACT_NAME}} ${{steps.dotenv.outputs.game_branch}}
# A file, directory or wildcard pattern that describes what to upload
path: .\source\package\*
# The desired behavior if no files are found using the provided path
- name: Zip Output
run: Compress-Archive -Path .\source\package\* -DestinationPath "${{env.ARTIFACT_NAME}}.zip";
if: >-
contains(github.ref, 'refs/tags/release-v') ||
contains(github.ref, 'refs/tags/release-b') ||
contains(github.ref, 'refs/tags/release-e')
- name: Create a Release
id: create_release
uses: actions/create-release@v1.1.4
if: >-
contains(github.ref, 'refs/tags/release-v') ||
contains(github.ref, 'refs/tags/release-b') ||
contains(github.ref, 'refs/tags/release-e')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
# The name of the tag. This should come from the webhook payload, `github.GITHUB_REF` when a user pushes a new tag
tag_name: ${{ steps.tagName.outputs.tag }}
# The name of the release. For example, `Release v1.0.1`
release_name: Release ${{env.ARTIFACT_NAME}} ${{steps.dotenv.outputs.game_branch}}
# Text describing the contents of the tag.
# body: # optional
# Path to file with information about the tag.
# body_path: # optional
# `true` to create a draft (unpublished) release, `false` to create a published one. Default: `false`
# draft: # optional
# `true` to identify the release as a prerelease. `false` to identify the release as a full release. Default: `false`
# prerelease: # optional
# Any branch or commit SHA the Git tag is created from, unused if the Git tag already exists. Default: SHA of current commit
# commitish: # optional
# Owner of the repository if it is not the current one
# owner: # optional
# Repository on which to release. Used only if you want to create the release on another repo
# repo: # optional
- name: Upload a Release Asset
uses: actions/upload-release-asset@v1.0.2
if: >-
contains(github.ref, 'refs/tags/release-v') ||
contains(github.ref, 'refs/tags/release-b') ||
contains(github.ref, 'refs/tags/release-e')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
# The URL for uploading assets to the release
upload_url: ${{ steps.create_release.outputs.upload_url }}
# The path to the asset you want to upload
asset_path: ${{env.ARTIFACT_NAME}}.zip
# The name of the asset you want to upload
asset_name: ${{env.ARTIFACT_NAME}} ${{steps.dotenv.outputs.game_branch}}.zip
# The content-type of the asset you want to upload. See the supported Media Types here: https://www.iana.org/assignments/media-types/media-types.xhtml for more information
asset_content_type: application/zip