-
Notifications
You must be signed in to change notification settings - Fork 41
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
276 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,6 +11,9 @@ on: | |
- 'source/cli/**' | ||
- 'MaaFramework/**' | ||
- 'assets/**' | ||
- 'cmake/**' | ||
- 'CMakelists.txt' | ||
- 'CMakePresets.json' | ||
pull_request: | ||
branches: | ||
- '**' | ||
|
@@ -19,76 +22,224 @@ on: | |
- 'source/cli/**' | ||
- 'MaaFramework/**' | ||
- 'assets/**' | ||
- 'cmake/**' | ||
- 'CMakelists.txt' | ||
- 'CMakePresets.json' | ||
workflow_dispatch: | ||
|
||
jobs: | ||
meta: | ||
runs-on: ubuntu-latest | ||
outputs: | ||
tag: ${{ steps.set_tag.outputs.tag }} | ||
steps: | ||
- uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
- id: set_tag | ||
run: | | ||
echo tag=$(git describe --tags --match "v*" ${{ github.ref }} || git rev-parse --short HEAD) | tee -a $GITHUB_OUTPUT | ||
is_release=${{ startsWith(github.ref, 'refs/tags/v') }} | ||
tag=$(git describe --tags --match "v*" ${{ github.ref }} || true) | ||
if [[ $tag != v* ]]; then | ||
tag=$(curl -sX GET "https://api.github.com/repos/MaaAssistantArknights/MaaFramework/releases/latest" --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' | awk '/tag_name/{print $4}' FS='["]') | ||
if [[ $tag != v* ]]; then | ||
tag="v0.0.0" | ||
fi | ||
tag=$(date "+$tag-%y%m%d-$(git rev-parse --short HEAD)") | ||
fi | ||
if ! $($is_release) ; then | ||
prefix=${tag%-*-*} | ||
suffix=${tag#$prefix-} | ||
tag="$prefix-ci.$suffix" | ||
fi | ||
echo tag=$tag | tee -a $GITHUB_OUTPUT | ||
echo is_release=$is_release | tee -a $GITHUB_OUTPUT | ||
outputs: | ||
tag: ${{ steps.set_tag.outputs.tag }} | ||
is_release: ${{ steps.set_tag.outputs.is_release }} | ||
|
||
windows: | ||
needs: meta | ||
runs-on: windows-latest | ||
strategy: | ||
matrix: | ||
include: | ||
- msbuild_target: x64 | ||
lowercase_target: x64 | ||
runs-on: windows-latest | ||
arch: [aarch64, x86_64] | ||
fail-fast: false | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
with: | ||
submodules: true | ||
|
||
- name: Update resource version | ||
run: | | ||
python3 .github/update_resource_version.py assets/resource/properties.json ${{ needs.meta.outputs.tag }} | ||
- name: Download MaaFramework | ||
uses: robinraju/[email protected] | ||
with: | ||
repository: MaaAssistantArknights/MaaFramework | ||
latest: true | ||
fileName: "MAA-win-${{ matrix.arch }}*" | ||
out-file-path: "deps" | ||
extract: true | ||
|
||
- name: Build MAA | ||
run: | | ||
cmake --preset "${{ matrix.arch == 'x86_64' && 'MSVC 2022' || 'MSVC 2022 ARM' }}" -DM9A_HASH_VERSION='${{ needs.meta.outputs.tag }}' | ||
cmake --build build --preset "${{ matrix.arch == 'x86_64' && 'MSVC 2022' || 'MSVC 2022 ARM' }} - Release" -j 16 | ||
- name: Install | ||
shell: bash | ||
if: always() | ||
run: | | ||
cmake --install build --prefix install | ||
- uses: actions/upload-artifact@v3 | ||
if: always() | ||
with: | ||
name: MAA-win-${{ matrix.arch }} | ||
path: "install" | ||
|
||
|
||
ubuntu: | ||
needs: meta | ||
runs-on: ubuntu-latest | ||
container: archlinux:base-devel | ||
strategy: | ||
matrix: | ||
arch: [aarch64, x86_64] | ||
fail-fast: false | ||
|
||
steps: | ||
# maybe should explicitly update some pkg instead of all? | ||
- name: Update system | ||
run: | | ||
pacman -Syu --noconfirm | ||
- name: Install dep | ||
run: | | ||
pacman -Sy | ||
pacman -S --noconfirm cmake python ccache ninja git | ||
# https://github.com/MaaAssistantArknights/MaaFramework/actions/runs/5643408179/job/15285186255 | ||
- uses: actions/checkout@v3 | ||
with: | ||
submodules: true | ||
|
||
- name: Install cross compile toolchains | ||
if: ${{ matrix.arch != 'x86_64' }} | ||
run: | | ||
pacman -Sy | ||
pacman -S --noconfirm aarch64-linux-gnu-gcc | ||
- name: Setup ccache | ||
uses: Chocobo1/setup-ccache-action@v1 | ||
with: | ||
remove_stale_cache: false | ||
|
||
- name: Update resource version | ||
run: | | ||
python3 .github/update_resource_version.py assets/resource/properties.json ${{ needs.meta.outputs.tag }} | ||
- name: Download MaaFramework | ||
uses: robinraju/[email protected] | ||
with: | ||
repository: MaaAssistantArknights/MaaFramework | ||
latest: true | ||
fileName: "MAA-win-x86_64*" | ||
out-file-path: "source/cli/${{ matrix.msbuild_target }}/Release" | ||
fileName: "MAA-linux-${{ matrix.arch }}*" | ||
out-file-path: "deps" | ||
extract: true | ||
|
||
- run: ls -l source/cli/${{ matrix.msbuild_target }}/Release | ||
- name: Build MAA | ||
env: | ||
CC: ${{ matrix.arch == 'x86_64' && 'ccache gcc' || 'ccache aarch64-linux-gnu-gcc' }} | ||
CXX: ${{ matrix.arch == 'x86_64' && 'ccache g++' || 'ccache aarch64-linux-gnu-g++' }} | ||
run: | | ||
cmake --preset 'NinjaMulti' \ | ||
-DM9A_HASH_VERSION='${{ needs.meta.outputs.tag }}' | ||
cmake --build build --preset 'NinjaMulti - Release' -j 16 | ||
- name: Install | ||
shell: bash | ||
if: always() | ||
run: | | ||
cmake --install build --prefix install | ||
- uses: actions/upload-artifact@v3 | ||
if: always() | ||
with: | ||
name: MAA-linux-${{ matrix.arch }} | ||
path: "install" | ||
|
||
macos: | ||
needs: meta | ||
runs-on: macos-latest | ||
strategy: | ||
matrix: | ||
arch: [aarch64, x86_64] | ||
fail-fast: false | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
with: | ||
submodules: true | ||
|
||
- name: Add msbuild to PATH | ||
uses: microsoft/setup-msbuild@v1 | ||
- name: Install dep | ||
run: | | ||
brew install cmake python ninja | ||
# ccache? | ||
|
||
- name: Install compiler | ||
run: | | ||
brew install llvm | ||
# 16 | ||
|
||
- name: Update resource version | ||
run: | | ||
python3 .github/update_resource_version.py assets/resource/properties.json ${{ needs.meta.outputs.tag }} | ||
- name: Download MaaFramework | ||
uses: robinraju/[email protected] | ||
with: | ||
repository: MaaAssistantArknights/MaaFramework | ||
latest: true | ||
fileName: "MAA-macos-${{ matrix.arch }}*" | ||
out-file-path: "deps" | ||
extract: true | ||
|
||
- name: Build MAA | ||
env: | ||
CC: "/usr/local/opt/llvm/bin/clang" | ||
CXX: "/usr/local/opt/llvm/bin/clang++" | ||
run: | | ||
MSBUILD source/cli/MAA1999_CLI.sln /t:rebuild /p:Configuration="Release" /p:Platform="${{ matrix.msbuild_target }}" /m /p:MAA_VERSION="${{ needs.meta.outputs.tag }}" | ||
cmake --preset 'NinjaMulti' \ | ||
-DM9A_HASH_VERSION='${{ needs.meta.outputs.tag }}' | ||
cmake --build build --preset 'NinjaMulti - Release' -j 16 | ||
- name: Install | ||
shell: bash | ||
if: always() | ||
run: | | ||
cd source/cli/${{ matrix.msbuild_target }}/Release | ||
mkdir -p install | ||
cp -r docs include resource MaaAgentBinary *.exe *.dll install | ||
cmake --install build --prefix install | ||
- uses: actions/upload-artifact@v3 | ||
if: always() | ||
with: | ||
name: MAA1999-win-${{ matrix.msbuild_target }} | ||
path: source/cli/${{ matrix.msbuild_target }}/Release/install | ||
name: MAA-macos-${{ matrix.arch }} | ||
path: "install" | ||
|
||
release: | ||
if: startsWith(github.ref, 'refs/tags/v') | ||
needs: [meta, windows] | ||
if: ${{ needs.meta.outputs.is_release == 'true' }} | ||
needs: [meta, windows, ubuntu, macos] | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/download-artifact@v3 | ||
with: | ||
path: assets | ||
|
||
- run: | | ||
cd assets | ||
for f in *; do | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
{ | ||
"version": 5, | ||
"cmakeMinimumRequired": { | ||
"major": 3, | ||
"minor": 21, | ||
"patch": 0 | ||
}, | ||
"configurePresets": [ | ||
{ | ||
"name": "NinjaMulti", | ||
"displayName": "Ninja MultiConfig", | ||
"description": "Ninja MultiConfig", | ||
"generator": "Ninja Multi-Config", | ||
"binaryDir": "${sourceDir}/build" | ||
}, | ||
{ | ||
"name": "MSVC 2022", | ||
"displayName": "MSVC 2022", | ||
"description": "MSVC 2022", | ||
"generator": "Visual Studio 17 2022", | ||
"binaryDir": "${sourceDir}/build", | ||
"condition": { | ||
"type": "equals", | ||
"lhs": "${hostSystemName}", | ||
"rhs": "Windows" | ||
} | ||
}, | ||
{ | ||
"name": "MSVC 2022 ARM", | ||
"displayName": "MSVC 2022 ARM", | ||
"description": "MSVC 2022 ARM", | ||
"generator": "Visual Studio 17 2022", | ||
"binaryDir": "${sourceDir}/build", | ||
"condition": { | ||
"type": "equals", | ||
"lhs": "${hostSystemName}", | ||
"rhs": "Windows" | ||
}, | ||
"architecture": { | ||
"strategy": "set", | ||
"value": "ARM64" | ||
} | ||
} | ||
], | ||
"buildPresets": [ | ||
{ | ||
"name": "NinjaMulti - Debug", | ||
"displayName": "Ninja MultiConfig Debug", | ||
"description": "Ninja MultiConfig Debug", | ||
"configurePreset": "NinjaMulti", | ||
"configuration": "Debug", | ||
"jobs": 16 | ||
}, | ||
{ | ||
"name": "NinjaMulti - DebWithRelDeps", | ||
"displayName": "Ninja MultiConfig DebWithRelDeps", | ||
"description": "Ninja MultiConfig DebWithRelDeps", | ||
"configurePreset": "NinjaMulti", | ||
"configuration": "RelWithDebInfo", | ||
"jobs": 16 | ||
}, | ||
{ | ||
"name": "NinjaMulti - Release", | ||
"displayName": "Ninja MultiConfig Release", | ||
"description": "Ninja MultiConfig Release", | ||
"configurePreset": "NinjaMulti", | ||
"configuration": "Release", | ||
"jobs": 16 | ||
}, | ||
{ | ||
"name": "MSVC 2022 - Debug", | ||
"displayName": "MSVC 2022 Debug", | ||
"description": "MSVC 2022 Debug", | ||
"configurePreset": "MSVC 2022", | ||
"configuration": "Debug", | ||
"jobs": 16 | ||
}, | ||
{ | ||
"name": "MSVC 2022 - DebWithRelDeps", | ||
"displayName": "MSVC 2022 DebWithRelDeps", | ||
"description": "MSVC 2022 DebWithRelDeps", | ||
"configurePreset": "MSVC 2022", | ||
"configuration": "DebWithRelDeps", | ||
"jobs": 16 | ||
}, | ||
{ | ||
"name": "MSVC 2022 - Release", | ||
"displayName": "MSVC 2022 Release", | ||
"description": "MSVC 2022 Release", | ||
"configurePreset": "MSVC 2022", | ||
"configuration": "Release", | ||
"jobs": 16 | ||
}, | ||
{ | ||
"name": "MSVC 2022 ARM - Release", | ||
"displayName": "MSVC 2022 ARM Release", | ||
"description": "MSVC 2022 ARM Release", | ||
"configurePreset": "MSVC 2022 ARM", | ||
"configuration": "Release", | ||
"jobs": 16 | ||
} | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
#include <cstdio> | ||
#include <filesystem> | ||
#include <fstream> | ||
#include <iostream> | ||
|