Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Normalize line endings to LF in both the repo and the working tree, regardless of
# the contributor's global core.autocrlf setting. PowerShell on Windows handles LF
# fine. Without this, Windows clones with core.autocrlf=true emit "LF will be
# replaced by CRLF the next time Git touches it" warnings on every commit when
# files are edited by tooling that writes LF (most editors and AI agents do).
* text=auto eol=lf
164 changes: 82 additions & 82 deletions .github/workflows/PublishModuleToPowerShellGallery.yaml
Original file line number Diff line number Diff line change
@@ -1,82 +1,82 @@
name: Publish Module to PowerShell Gallery
on:
push:
branches:
- main
paths:
- 'ReScenePS/ReScenePS.psd1'
workflow_dispatch:
permissions:
contents: write
jobs:
publish:
name: Publish Module
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Get Module Version
id: version
shell: pwsh
run: |
$manifest = Import-PowerShellDataFile -Path ./ReScenePS/ReScenePS.psd1
$version = $manifest.ModuleVersion
Write-Host "Module version: $version"
"version=$version" | Out-File -FilePath $env:GITHUB_OUTPUT -Append
- name: Check if Release Exists
id: check_release
shell: bash
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
if gh release view "v${{ steps.version.outputs.version }}" > /dev/null 2>&1; then
echo "exists=true" >> $GITHUB_OUTPUT
echo "GitHub release v${{ steps.version.outputs.version }} already exists"
else
echo "exists=false" >> $GITHUB_OUTPUT
echo "GitHub release v${{ steps.version.outputs.version }} does not exist"
fi
- name: Check if PSGallery Version Exists
id: check_psgallery
if: steps.check_release.outputs.exists == 'false'
shell: pwsh
run: |
$version = "${{ steps.version.outputs.version }}"
$published = Find-Module -Name ReScenePS -RequiredVersion $version -Repository PSGallery -ErrorAction SilentlyContinue
if ($published) {
Write-Host "PSGallery version $version already exists"
"exists=true" | Out-File -FilePath $env:GITHUB_OUTPUT -Append
} else {
Write-Host "PSGallery version $version not found - will publish"
"exists=false" | Out-File -FilePath $env:GITHUB_OUTPUT -Append
}
- name: Bootstrap
if: steps.check_release.outputs.exists == 'false'
shell: pwsh
run: ./build.ps1 -Task Init -Bootstrap
- name: Create GitHub Release
if: steps.check_release.outputs.exists == 'false'
shell: bash
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create "v${{ steps.version.outputs.version }}" \
--title "v${{ steps.version.outputs.version }}" \
--generate-notes
- name: Publish to PSGallery
if: steps.check_release.outputs.exists == 'false' && steps.check_psgallery.outputs.exists == 'false'
shell: pwsh
env:
PSGALLERY_API_KEY: ${{ secrets.PS_GALLERY_KEY }}
run: ./build.ps1 -Task Publish -Bootstrap
name: Publish Module to PowerShell Gallery

on:
push:
branches:
- main
paths:
- 'ReScenePS/ReScenePS.psd1'
workflow_dispatch:

permissions:
contents: write

jobs:
publish:
name: Publish Module
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Get Module Version
id: version
shell: pwsh
run: |
$manifest = Import-PowerShellDataFile -Path ./ReScenePS/ReScenePS.psd1
$version = $manifest.ModuleVersion
Write-Host "Module version: $version"
"version=$version" | Out-File -FilePath $env:GITHUB_OUTPUT -Append

- name: Check if Release Exists
id: check_release
shell: bash
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
if gh release view "v${{ steps.version.outputs.version }}" > /dev/null 2>&1; then
echo "exists=true" >> $GITHUB_OUTPUT
echo "GitHub release v${{ steps.version.outputs.version }} already exists"
else
echo "exists=false" >> $GITHUB_OUTPUT
echo "GitHub release v${{ steps.version.outputs.version }} does not exist"
fi

- name: Check if PSGallery Version Exists
id: check_psgallery
if: steps.check_release.outputs.exists == 'false'
shell: pwsh
run: |
$version = "${{ steps.version.outputs.version }}"
$published = Find-Module -Name ReScenePS -RequiredVersion $version -Repository PSGallery -ErrorAction SilentlyContinue
if ($published) {
Write-Host "PSGallery version $version already exists"
"exists=true" | Out-File -FilePath $env:GITHUB_OUTPUT -Append
} else {
Write-Host "PSGallery version $version not found - will publish"
"exists=false" | Out-File -FilePath $env:GITHUB_OUTPUT -Append
}

- name: Bootstrap
if: steps.check_release.outputs.exists == 'false'
shell: pwsh
run: ./build.ps1 -Task Init -Bootstrap

- name: Create GitHub Release
if: steps.check_release.outputs.exists == 'false'
shell: bash
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create "v${{ steps.version.outputs.version }}" \
--title "v${{ steps.version.outputs.version }}" \
--generate-notes

- name: Publish to PSGallery
if: steps.check_release.outputs.exists == 'false' && steps.check_psgallery.outputs.exists == 'false'
shell: pwsh
env:
PSGALLERY_API_KEY: ${{ secrets.PS_GALLERY_KEY }}
run: ./build.ps1 -Task Publish -Bootstrap
Loading