Skip to content

Enhancement (ci): Use docker image for test-publish-to-psgallery and publish-to-psgallery jobs #88

Enhancement (ci): Use docker image for test-publish-to-psgallery and publish-to-psgallery jobs

Enhancement (ci): Use docker image for test-publish-to-psgallery and publish-to-psgallery jobs #88

Workflow file for this run

name: ci-master-pr
on:
push:
branches:
- master
tags:
- '**'
pull_request:
branches:
- master
jobs:
test-powershell-5-1-windows-2019:
runs-on: windows-2019
steps:
- uses: actions/checkout@v1
- name: Powershell version
run: |
powershell -NoLogo -NonInteractive -NoProfile -Command '$PSVersionTable'
- name: Test
run: |
powershell -NoLogo -NonInteractive -NoProfile -Command './test/test.ps1'
##########
# Docker #
##########
# Get powershell tags: https://mcr.microsoft.com/v2/powershell/tags/list
test-powershell-6-0:
runs-on: ubuntu-latest
container:
image: theohbrothers/docker-powershell:6.0.4-ubuntu-16.04-git
steps:
- uses: actions/checkout@v1
- name: Powershell version
run: |
pwsh -NoLogo -NonInteractive -NoProfile -Command '$PSVersionTable'
- name: Test
run: |
pwsh -NoLogo -NonInteractive -NoProfile -Command './test/test.ps1'
test-powershell-6-1:
runs-on: ubuntu-latest
container:
image: theohbrothers/docker-powershell:6.1.3-ubuntu-18.04-git
steps:
- uses: actions/checkout@v1
- name: Powershell version
run: |
pwsh -NoLogo -NonInteractive -NoProfile -Command '$PSVersionTable'
- name: Test
run: |
pwsh -NoLogo -NonInteractive -NoProfile -Command './test/test.ps1'
test-powershell-6-2:
runs-on: ubuntu-latest
container:
image: theohbrothers/docker-powershell:6.2.4-ubuntu-18.04-git
steps:
- uses: actions/checkout@v1
- name: Powershell version
run: |
pwsh -NoLogo -NonInteractive -NoProfile -Command '$PSVersionTable'
- name: Test
run: |
pwsh -NoLogo -NonInteractive -NoProfile -Command './test/test.ps1'
test-powershell-7-0:
runs-on: ubuntu-latest
container:
image: theohbrothers/docker-powershell:7.0.3-ubuntu-18.04-git
steps:
- uses: actions/checkout@v1
- name: Powershell version
run: |
pwsh -NoLogo -NonInteractive -NoProfile -Command '$PSVersionTable'
- name: Test
run: |
pwsh -NoLogo -NonInteractive -NoProfile -Command './test/test.ps1'
test-powershell-7-1:
runs-on: ubuntu-latest
container:
image: theohbrothers/docker-powershell:7.1.5-ubuntu-20.04-git
steps:
- uses: actions/checkout@v1
- name: Powershell version
run: |
pwsh -NoLogo -NonInteractive -NoProfile -Command '$PSVersionTable'
- name: Test
run: |
pwsh -NoLogo -NonInteractive -NoProfile -Command './test/test.ps1'
test-powershell-7-2:
runs-on: ubuntu-latest
container:
image: theohbrothers/docker-powershell:7.2-ubuntu-22.04-git
steps:
- uses: actions/checkout@v1
- name: Powershell version
run: |
pwsh -NoLogo -NonInteractive -NoProfile -Command '$PSVersionTable'
- name: Test
run: |
pwsh -NoLogo -NonInteractive -NoProfile -Command './test/test.ps1'
test-powershell-7-3:
runs-on: ubuntu-latest
container:
image: theohbrothers/docker-powershell:7.3-ubuntu-22.04-git
steps:
- uses: actions/checkout@v1
- name: Powershell version
run: |
pwsh -NoLogo -NonInteractive -NoProfile -Command '$PSVersionTable'
- name: Test
run: |
pwsh -NoLogo -NonInteractive -NoProfile -Command './test/test.ps1'
test-powershell-7-4:
runs-on: ubuntu-latest
container:
image: theohbrothers/docker-powershell:7.4-ubuntu-22.04-git
steps:
- uses: actions/checkout@v1
- name: Powershell version
run: |
pwsh -NoLogo -NonInteractive -NoProfile -Command '$PSVersionTable'
- name: Test
run: |
pwsh -NoLogo -NonInteractive -NoProfile -Command './test/test.ps1'
update-draft-release:
needs:
- test-powershell-5-1-windows-2019
- test-powershell-6-0
- test-powershell-6-1
- test-powershell-6-2
- test-powershell-7-0
- test-powershell-7-1
- test-powershell-7-2
- test-powershell-7-3
- test-powershell-7-4
- test-publish-to-psgallery
if: github.ref == 'refs/heads/master'
runs-on: ubuntu-latest
steps:
# Drafts your next Release notes as Pull Requests are merged into "master"
- uses: release-drafter/release-drafter@v5
with:
config-name: release-drafter.yml
publish: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
test-publish-to-psgallery:
runs-on: ubuntu-latest
container:
image: theohbrothers/docker-powershell:7.4-ubuntu-22.04-git
steps:
- uses: actions/checkout@v1
with:
submodules: true
- name: Install wget
run: |
apt-get update && apt-get install -y wget
- uses: actions/setup-dotnet@v4
with:
dotnet-version: '6'
- name: Powershell version
run: |
pwsh -NoLogo -NonInteractive -NoProfile -Command '$PSVersionTable'
- name: Ignore git permissions
run: |
git config --global --add safe.directory "$( pwd )"
- name: Publish (dry run)
shell: pwsh
env:
MODULE_VERSION: '999.0.0'
NUGET_API_KEY: 'xxx'
run: |
$ErrorActionPreference = 'Stop'
Import-Module ./build/PSModulePublisher/src/PSModulePublisher -Force
$moduleManifest = Invoke-Build
Invoke-Publish -ModuleManifestPath $moduleManifest -Repository PSGallery -DryRun
publish-to-psgallery:
needs:
- test-powershell-5-1-windows-2019
- test-powershell-6-0
- test-powershell-6-1
- test-powershell-6-2
- test-powershell-7-0
- test-powershell-7-1
- test-powershell-7-2
- test-powershell-7-3
- test-powershell-7-4
- test-publish-to-psgallery
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
container:
image: theohbrothers/docker-powershell:7.4-ubuntu-22.04-git
steps:
- uses: actions/checkout@v1
with:
submodules: true
- name: Install wget
run: |
apt-get update && apt-get install -y wget
- uses: actions/setup-dotnet@v4
with:
dotnet-version: '6'
- name: Powershell version
run: |
pwsh -NoLogo -NonInteractive -NoProfile -Command '$PSVersionTable'
- name: Ignore git permissions
run: |
git config --global --add safe.directory "$( pwd )"
- name: Publish
shell: pwsh
env:
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
run: |
$ErrorActionPreference = 'Stop'
Import-Module ./build/PSModulePublisher/src/PSModulePublisher -Force
$moduleManifest = Invoke-Build
Invoke-Publish -ModuleManifestPath $moduleManifest -Repository PSGallery
publish-draft-release:
needs: [publish-to-psgallery]
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
steps:
# Drafts your next Release notes as Pull Requests are merged into "master"
- uses: release-drafter/release-drafter@v5
with:
config-name: release-drafter.yml
publish: true
name: ${{ github.ref_name }} # E.g. 'master' or 'v1.2.3'
tag: ${{ github.ref_name }} # E.g. 'master' or 'v1.2.3'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}