name: Generate Windows patches on: workflow_dispatch: inputs: os: description: 'Operating System' required: true default: 'win' type: choice options: - win - linux version: description: 'Driver Version' required: true type: string variant: description: 'Driver Variant' required: false type: choice options: - DCH - Studio Driver - DCH (Hotfix) description: description: 'Commit description' required: false type: string permissions: contents: write jobs: build: runs-on: ubuntu-latest env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - name: Check OS and variant id: check_input run: | os="${{ inputs.os }}" variant="${{ inputs.variant }}" version="${{ inputs.version }}" echo "Operating System: $os" echo "Variant: $variant" echo "Version: $version" if [[ $version =~ ([0-9]+\.[0-9]+(-[a-zA-Z]+)?)(-.+)? ]]; then if [ "$os" != "win" ]; then echo "Not a Windows release. Stopping the CI workflow." exit 0 fi echo "OS=$os" >> $GITHUB_ENV echo "VARIANT=$variant" >> $GITHUB_ENV echo "VERSION=$version" >> $GITHUB_ENV else echo "Invalid driver version." exit 1 fi - name: Checkout repository uses: actions/checkout@v3 with: ref: master - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.10' - name: Delete Existing Files run: | echo "Deleting existing files if they exist" dir=${{ env.VERSION }} if [ "${{ env.VARIANT }}" == "Studio Driver" ]; then dir=nsd_${{ env.VERSION }} fi rm -f "${{ github.workspace }}/win/win10_x64/$dir/nvencodeapi64.1337" rm -f "${{ github.workspace }}/win/win10_x64/$dir/nvencodeapi.1337" echo "Existing files deleted successfully" - name: Run autopatch.py run: | echo "Running autopatch.py with version ${{ env.VERSION }} and variant ${{ env.VARIANT }}" cd "${{ github.workspace }}/win/tools/autopatch" if [ "${{ env.VARIANT }}" == "DCH" ]; then python autopatch.py ${{ env.VERSION }} elif [ "${{ env.VARIANT }}" == "Studio Driver" ]; then python autopatch.py https://international.download.nvidia.com/Windows/${{ env.VERSION }}/${{ env.VERSION }}-desktop-win10-win11-64bit-international-nsd-dch-whql.exe elif [ "${{ env.VARIANT }}" == "DCH (Hotfix)" ]; then python autopatch.py https://international.download.nvidia.com/Windows/${{ env.VERSION }}hf/${{ env.VERSION }}-desktop-notebook-win10-win11-64bit-international-dch.hf.exe fi echo "autopatch.py executed successfully" - name: Run add_driver.py run: | echo "Running add_driver.py with variant ${{ env.VARIANT }} and version ${{ env.VERSION }}" cd "${{ github.workspace }}/tools/readme-autogen" python add_driver.py -W -P GeForce --variant "${{ env.VARIANT }}" -w win10 ${{ env.VERSION }} echo "add_driver.py executed successfully" - name: Run readme_autogen.py run: | echo "Running readme_autogen.py" cd "${{ github.workspace }}/tools/readme-autogen" python readme_autogen.py echo "readme_autogen.py executed successfully" - name: Commit and push changes run: | echo "Committing and pushing changes" cd "${{ github.workspace }}" git config --local user.email "action@github.com" git config --local user.name "GitHub Action" git add -A git diff --quiet --exit-code --cached || git commit -m "${{ env.OS }}: add support for ${{ env.VARIANT }} driver ${{ env.VERSION }}" -m "${{ inputs.description }}" git push origin master echo "Committed and pushed changes"