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

110 lines
4.4 KiB

name: Build
on:
push:
tags:
- "*.*"
jobs:
patch:
runs-on: windows-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@main
- name: Signing all .ps1, .psm1, .psd1 files
run: |
. Scripts\Sign.ps1
- name: Dependencies
run: |
. "Scripts\Dependencies.ps1"
- name: Sophia Script for Windows 10
run: |
. "Scripts\Windows_10.ps1"
- name: Sophia Script for Windows 10 PowerShell 7
run: |
. "Scripts\Windows_10_PS_7.ps1"
- name: Sophia Script for Windows 10 LTSC 2019
run: |
. "Scripts\Windows_10_LTSC_2019.ps1"
- name: Sophia Script for Windows 10 LTSC 2021
run: |
. "Scripts\Windows_10_LTSC_2021.ps1"
- name: Sophia Script for Windows 11
run: |
. "Scripts\Windows_11.ps1"
- name: Sophia Script for Windows 11 PowerShell 7
run: |
. "Scripts\Windows_11_PS_7.ps1"
- name: Sophia Script Wrapper
run: |
. "Scripts\Wrapper.ps1"
- name: ReleaseNotesTemplate
id: read_release
run: |
# Get a penultimate build tag
$Token = "${{ secrets.GITHUB_TOKEN }}"
$Headers = @{
Accept = "application/json"
Authorization = "Bearer $Token"
}
$Parameters = @{
Uri = "https://api.github.com/repos/farag2/Sophia-Script-for-Windows/releases"
Headers = $Headers
UseBasicParsing = $true
Verbose = $true
}
$Penultimate = (Invoke-RestMethod @Parameters).tag_name | Select-Object -Index 1
# Parse json for the latest script versions
$Parameters = @{
Uri = "https://raw.githubusercontent.com/farag2/Sophia-Script-for-Windows/master/sophia_script_versions.json"
UseBasicParsing = $true
Verbose = $true
}
$Sophia_Script_Windows_10_PowerShell_5_1 = (Invoke-RestMethod @Parameters).Sophia_Script_Windows_10_PowerShell_5_1
$Sophia_Script_Windows_10_PowerShell_7 = (Invoke-RestMethod @Parameters).Sophia_Script_Windows_10_PowerShell_7
$Sophia_Script_Windows_10_LTSC2019 = (Invoke-RestMethod @Parameters).Sophia_Script_Windows_10_LTSC2019
$Sophia_Script_Windows_10_LTSC2021 = (Invoke-RestMethod @Parameters).Sophia_Script_Windows_10_LTSC2021
$Sophia_Script_Windows_11_PowerShell_5_1 = (Invoke-RestMethod @Parameters).Sophia_Script_Windows_11_PowerShell_5_1
$Sophia_Script_Windows_11_PowerShell_7 = (Invoke-RestMethod @Parameters).Sophia_Script_Windows_11_PowerShell_7
$Sophia_Script_Wrapper = (Invoke-RestMethod @Parameters).Sophia_Script_Wrapper
# Replace variables with script latest versions
# No need to replace special characters with percent-encoding ones
(Get-Content -Path ReleaseNotesTemplate.md -Encoding utf8 -Raw) | Foreach-Object -Process {
$_ -replace "NewVersion", "${{ github.ref_name }}" `
-replace "OldVersion", $Penultimate `
-replace "Sophia_Script_Windows_10_PowerShell_5_1", $Sophia_Script_Windows_10_PowerShell_5_1 `
-replace "Sophia_Script_Windows_10_PowerShell_7", $Sophia_Script_Windows_10_PowerShell_7 `
-replace "Sophia_Script_Windows_10_LTSC2019", $Sophia_Script_Windows_10_LTSC2019 `
-replace "Sophia_Script_Windows_10_LTSC2021", $Sophia_Script_Windows_10_LTSC2021 `
-replace "Sophia_Script_Windows_11_PowerShell_5_1", $Sophia_Script_Windows_11_PowerShell_5_1 `
-replace "Sophia_Script_Windows_11_PowerShell_7", $Sophia_Script_Windows_11_PowerShell_7 `
-replace "Sophia_Script_Wrapper", $Sophia_Script_Wrapper
} | Set-Content -Path ReleaseNotesTemplate.md -Encoding utf8 -Force
# https://trstringer.com/github-actions-multiline-strings/
Add-Content -Path $env:GITHUB_OUTPUT -Value "ReleaseBody=ReleaseNotesTemplate.md"
$ReleaseName = Get-Date -f "dd.MM.yyyy"
echo "RELEASE_NAME=$ReleaseName" >> $env:GITHUB_ENV
- name: Uploading
uses: softprops/action-gh-release@master
with:
name: ${{ env.RELEASE_NAME }}
token: ${{ github.token }}
files: |
Sophia*.zip
SHA256SUM
body_path: ${{ steps.read_release.outputs.ReleaseBody }}