我正在用Xamarin.Forms做一个宠物项目,我想知道是否有人有过配置gitlab-ci.yml构建成功的经验。一般情况下,关于.NET构建的配置材料似乎有限,在将两个构建连接在一起之前,我尝试成功地构建一个。尝试了构建路径的每个项目的.csproj。
如有任何见解和经验,将不胜感激。
当前..gitlab ci.yml
image: mono
variables:
Solution: Solution.sln
stages:
- build
- test
- deploy
before_script:
- nuget restore $Solution
build:
stage: build
script:
- MONO_IOMAP=case xbuild /p:Configuration="Release" /p:Platform="iPhone" /t:Build $Solution发布于 2020-08-03 16:10:57
是的,我们让它完美地工作,而不需要使用靴子或AzureDevops。正如@AkashKava所提到的,我必须让它在Mac /runner上运行,我使用AppCenter的CLI命令作为发行版的一部分,在这里我还存储了自己的证书、密钥存储和配置配置文件。
因此,在运行所有程序之前,请确保还原nuget包并安装必要的库nuget、msbuild、appcenter、.:
before_script:
- nuget restore然后,为了创建一个Android QA apk文件:
android_dev_apk:
stage: build
dependencies: []
tags:
- xamarin
script:
- msbuild {AppName}.sln $BUILD_VERBOSITY /t:Clean /p:Configuration=Dev
- msbuild {AppName}.sln $BUILD_VERBOSITY /t:Build /p:Configuration=Dev
- msbuild {AppName}.Android/{AppName}.Android.csproj $BUILD_VERBOSITY /t:PackageForAndroid /t:SignAndroidPackage /p:Configuration=Dev /p:AndroidKeyStore=True只需将{AppName}替换为应用程序的文件夹名/应用程序名,这在我的情况下是一样的。同样适用于iOS
ios_qa_app:
stage: build
dependencies: []
tags:
- xamarin
script:
- rm -rf {AppName}.iOS/bin/iPhone/QA
- msbuild {AppName}.sln $BUILD_VERBOSITY /t:Clean /p:Platform=iPhone /p:Configuration=QA
- msbuild {AppName}.sln $BUILD_VERBOSITY /t:Build /p:Platform=iPhone /p:ArchiveOnBuild=true /p:Configuration=QA
artifacts:
paths:
- {AppName}.iOS/bin/iPhone/QA/{AppName}.ipa
- {AppName}.iOS/bin/iPhone/QA/{AppName}.app.dSYM
expire_in: 10 day
when: on_success
only:
- schedules
except:
variables:
- $ProdBuild == "true"请注意,在script下,一切都与使用终端时一样,所以您也可以键入类似ls之类的内容,以便在输出日志中打印该文件夹中的文件列表,或者键入cd ..或cd DirectoryName以更改文件夹。
因此,要分发Android工件,将其添加到Android脚本中:
- appcenter distribute release --app {CompanyInAppCenter}/{AndroidAppNameInAppCenter} --group "Collaborators" --file {AppName}.Android/bin/QA/{BundleIdentifier}-Signed.apk --token=${APPCENTER_API_TOKEN}最后,要分发iOS工件,请将其添加到iOS脚本中:
- appcenter distribute release --app {CompanyInAppCenter}/{iOSAppNameInAppCenter} --group "Collaborators" --file {AppName}.iOS/bin/iPhone/QA/{AppName}.ipa --token=${APPCENTER_API_TOKEN}PS:我写了一篇关于如何在不使用自己的构建代理的情况下做一些使用GitHub操作的文章。
发布于 2019-08-22 09:29:07
还没有,不幸的是,您将需要一台windows机器,先决条件:
您可以在新的这里表单所依赖的.Net上构建更多的信息。
https://stackoverflow.com/questions/42757115
复制相似问题