You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

127 lines
4.1 KiB
YAML

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"