name: 'Setup GDK (Game Development Kit) for Windows Desktop' description: 'Download GDK and install into MSBuild' inputs: # Keep edition and ref in sync! edition: description: 'GDK edition' default: '240601' # YYMMUU (Year Month Update) ref: description: 'Git reference' default: 'June_2024_Update_1' folder: description: 'Folder where to create Directory.Build.props' required: true default: '${{ github.workspace }}' runs: using: 'composite' steps: - uses: actions/setup-python@main with: python-version: 3.x - name: 'Calculate variables' id: calc shell: pwsh run: | $vs_folder=@(vswhere -latest -property installationPath) echo "vs-folder=${vs_folder}" >> $Env:GITHUB_OUTPUT echo "gdk-path=${{ runner.temp }}\GDK-${{ inputs.edition }}" >> $Env:GITHUB_OUTPUT echo "cache-key=gdk-${{ inputs.ref }}-${{ inputs.edition }}" >> $Env:GITHUB_OUTPUT - name: 'Restore cached GDK' id: cache-restore uses: actions/cache/restore@v4 with: path: '${{ steps.calc.outputs.gdk-path }}' key: ${{ steps.calc.outputs.cache-key }} - name: 'Download GDK' if: ${{ !steps.cache-restore.outputs.cache-hit }} shell: pwsh run: | python build-scripts/setup-gdk-desktop.py ` --download ` --temp-folder "${{ runner.temp }}" ` --gdk-path="${{ steps.calc.outputs.gdk-path }}" ` --ref-edition "${{ inputs.ref }},${{ inputs.edition }}" ` --vs-folder="${{ steps.calc.outputs.vs-folder }}" ` --no-user-props - name: 'Extract GDK' if: ${{ !steps.cache-restore.outputs.cache-hit }} shell: pwsh run: | python build-scripts/setup-gdk-desktop.py ` --extract ` --ref-edition "${{ inputs.ref }},${{ inputs.edition }}" ` --temp-folder "${{ runner.temp }}" ` --gdk-path="${{ steps.calc.outputs.gdk-path }}" ` --vs-folder="${{ steps.calc.outputs.vs-folder }}" ` --no-user-props - name: 'Cache GDK' if: ${{ !steps.cache-restore.outputs.cache-hit }} uses: actions/cache/save@v4 with: path: '${{ steps.calc.outputs.gdk-path }}' key: ${{ steps.calc.outputs.cache-key }} - name: 'Copy MSBuild files into GDK' shell: pwsh run: | python build-scripts/setup-gdk-desktop.py ` --ref-edition "${{ inputs.ref }},${{ inputs.edition }}" ` --gdk-path="${{ steps.calc.outputs.gdk-path }}" ` --vs-folder="${{ steps.calc.outputs.vs-folder }}" ` --copy-msbuild ` --no-user-props - name: 'Write user props' shell: pwsh run: | python build-scripts/setup-gdk-desktop.py ` --ref-edition "${{ inputs.ref }},${{ inputs.edition }}" ` --temp-folder "${{ runner.temp }}" ` --vs-folder="${{ steps.calc.outputs.vs-folder }}" ` --gdk-path="${{ steps.calc.outputs.gdk-path }}" ` "--props-folder=${{ inputs.folder }}"