Merge pull request #7 from milutinke/1.20.2 #77
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
name: Build MCC and Documents | |
on: | |
push: | |
branches: | |
- master | |
workflow_dispatch: | |
env: | |
PROJECT: "MinecraftClient" | |
target-version: "net7.0" | |
compile-flags: "--self-contained=true -c Release -p:UseAppHost=true -p:IncludeNativeLibrariesForSelfExtract=true -p:EnableCompressionInSingleFile=true -p:DebugType=None" | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
if: ${{ always() && needs.fetch-translations.result != 'failure' }} | |
needs: [determine-build, fetch-translations] | |
timeout-minutes: 15 | |
strategy: | |
matrix: | |
target: [win-x86, win-x64, win-arm, win-arm64, linux-x64, linux-arm, linux-arm64, osx-x64, osx-arm64] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
if: ${{ always() && needs.fetch-translations.result == 'skipped' }} | |
with: | |
fetch-depth: 0 | |
submodules: 'true' | |
- name: Get Current Date | |
run: | | |
echo date=$(date +'%Y%m%d') >> $GITHUB_ENV | |
echo date_dashed=$(date -u +'%Y-%m-%d') >> $GITHUB_ENV | |
- name: Restore Translations (if available) | |
uses: actions/cache/restore@v3 | |
with: | |
path: ${{ github.workspace }}/* | |
key: "translation-${{ github.sha }}" | |
restore-keys: "translation-" | |
- name: Setup Environment Variables (early) | |
run: | | |
echo project-path=${{ github.workspace }}/${{ env.PROJECT }} >> $GITHUB_ENV | |
echo file-ext=${{ (startsWith(matrix.target, 'win') && '.exe') || ' ' }} >> $GITHUB_ENV | |
- name: Setup Environment Variables | |
run: | | |
echo target-out-path=${{ env.project-path }}/bin/Release/${{ env.target-version }}/${{ matrix.target }}/publish/ >> $GITHUB_ENV | |
echo assembly-info=${{ env.project-path }}/Properties/AssemblyInfo.cs >> $GITHUB_ENV | |
echo build-version-info=${{ env.date }}-${{ github.run_number }} >> $GITHUB_ENV | |
echo commit=$(echo ${{ github.sha }} | cut -c 1-7) >> $GITHUB_ENV | |
- name: Setup Environment Variables (late) | |
run: | | |
echo built-executable-path=${{ env.target-out-path }}${{ env.PROJECT }}${{ env.file-ext }} >> $GITHUB_ENV | |
- name: Set Version Info | |
run: | | |
echo '' >> ${{ env.assembly-info }} | |
echo "[assembly: AssemblyConfiguration(\"GitHub build ${{ github.run_number }}, built on ${{ env.date_dashed }} from commit ${{ env.commit }}\")]" >> ${{ env.assembly-info }} | |
- name: Build Target | |
run: dotnet publish ${{ env.project-path }}.sln -f ${{ env.target-version }} -r ${{ matrix.target }} ${{ env.compile-flags }} | |
env: | |
DOTNET_NOLOGO: true | |
- name: Target Publish Executable | |
uses: tix-factory/release-manager@v1 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
mode: uploadReleaseAsset | |
filePath: ${{ env.built-executable-path }} | |
assetName: ${{ env.PROJECT }}-${{ env.build-version-info }}-${{ matrix.target }}${{ (startsWith(matrix.target, 'win') && '.exe') || ' ' }} | |
tag: ${{ format('{0}-{1}', env.date, github.run_number) }} | |
fetch-translations: | |
strategy: | |
fail-fast: true | |
runs-on: ubuntu-latest | |
needs: determine-build | |
# Translations will only be fetched in the MCCTeam repository, since it needs crowdin secrets. | |
if: ${{ github.repository == 'MCCTeam/Minecraft-Console-Client' }} | |
timeout-minutes: 15 | |
steps: | |
- name: Check cache | |
uses: actions/cache/restore@v3 | |
id: cache-check | |
with: | |
path: ${{ github.workspace }}/* | |
key: "translation-${{ github.sha }}" | |
lookup-only: true | |
restore-keys: "translation-" | |
- name: Checkout | |
uses: actions/checkout@v3 | |
if: steps.cache-check.outputs.cache-hit != 'true' | |
with: | |
fetch-depth: 0 | |
submodules: 'true' | |
- name: Download translations from crowdin | |
uses: crowdin/github-action@v1.6.0 | |
if: steps.cache-check.outputs.cache-hit != 'true' | |
with: | |
upload_sources: false | |
upload_translations: false | |
download_translations: true | |
localization_branch_name: l10n_master | |
create_pull_request: false | |
push_translations: false | |
base_path: ${{ github.workspace }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }} | |
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_TOKEN }} | |
- name: Save cache | |
uses: actions/cache/save@v3 | |
if: steps.cache-check.outputs.cache-hit != 'true' | |
with: | |
path: ${{ github.workspace }}/* | |
key: "translation-${{ github.sha }}" | |
build-transition-version: | |
runs-on: ubuntu-latest | |
if: ${{ always() && needs.fetch-translations.result != 'failure' }} | |
needs: [determine-build, fetch-translations] | |
timeout-minutes: 15 | |
strategy: | |
fail-fast: true | |
matrix: | |
target: [win-x86, win-x64, linux-x64, linux-arm64, osx-x64] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
if: ${{ always() && needs.fetch-translations.result == 'skipped' }} | |
with: | |
fetch-depth: 0 | |
submodules: 'true' | |
- name: Get Current Date | |
run: | | |
echo date=$(date +'%Y%m%d') >> $GITHUB_ENV | |
echo date_dashed=$(date -u +'%Y-%m-%d') >> $GITHUB_ENV | |
- name: Restore Translations (if available) | |
uses: actions/cache/restore@v3 | |
with: | |
path: ${{ github.workspace }}/* | |
key: "translation-${{ github.sha }}" | |
restore-keys: "translation-" | |
- name: Setup Environment Variables (early) | |
run: | | |
echo project-path=${{ github.workspace }}/${{ env.PROJECT }} >> $GITHUB_ENV | |
echo file-ext=${{ (startsWith(matrix.target, 'win') && '.exe') || ' ' }} >> $GITHUB_ENV | |
- name: Setup Environment Variables | |
run: | | |
echo target-out-path=${{ env.project-path }}/bin/Release/${{ env.target-version }}/${{ matrix.target }}/publish/ >> $GITHUB_ENV | |
echo assembly-info=${{ env.project-path }}/Properties/AssemblyInfo.cs >> $GITHUB_ENV | |
echo build-version-info=${{ env.date_dashed }}-${{ github.run_number }} >> $GITHUB_ENV | |
echo commit=$(echo ${{ github.sha }} | cut -c 1-7) >> $GITHUB_ENV | |
- name: Setup Environment Variables (late) | |
run: | | |
echo built-executable-path=${{ env.target-out-path }}${{ env.PROJECT }}${{ env.file-ext }} >> $GITHUB_ENV | |
- name: Set Version Info | |
run: | | |
echo '' >> ${{ env.assembly-info }} | |
echo "[assembly: AssemblyConfiguration(\"GitHub build ${{ github.run_number }}, built on ${{ env.date_dashed }} from commit ${{ env.commit }}\")]" >> ${{ env.assembly-info }} | |
- name: Build Target | |
run: dotnet publish ${{ env.project-path }}.sln -f ${{ env.target-version }} -r ${{ matrix.target }} ${{ env.compile-flags }} | |
env: | |
DOTNET_NOLOGO: true | |
- name: Zip Target | |
run: zip -qq -r mcc-${{ matrix.target }}.zip * | |
working-directory: ${{ env.target-out-path }} | |
- name: Target Publish Executable | |
uses: tix-factory/release-manager@v1 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
mode: uploadReleaseAsset | |
filePath: ${{ env.target-out-path }}/mcc-${{ matrix.target }}.zip | |
assetName: ${{ env.PROJECT }}-${{ (contains(matrix.target, 'linux-x64') && 'linux.zip') || (contains(matrix.target, 'win-x86') && 'windows-x86.zip') || (contains(matrix.target, 'win-x64') && 'windows-x64.zip') || (contains(matrix.target, 'linux-arm64') && 'linux-arm64.zip') || (contains(matrix.target, 'osx-x64') && 'osx.zip') }} | |
tag: ${{ format('{0}-{1}', env.date, github.run_number) }} | |
determine-build: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: true | |
if: ${{ !contains(github.event.head_commit.message, 'skip ci') }} | |
steps: | |
- name: dummy action | |
run: "echo 'dummy action'" |