Skip to content

Commit 484cf0a

Browse files
committed
Fix again deployment action for release
1 parent 0d48db3 commit 484cf0a

File tree

1 file changed

+44
-23
lines changed

1 file changed

+44
-23
lines changed

.github/workflows/deploy.yml

Lines changed: 44 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -15,91 +15,112 @@ permissions:
1515
packages: write
1616

1717
jobs:
18+
determine-tag:
19+
if: github.event_name == 'workflow_run'
20+
runs-on: ubuntu-latest
21+
outputs:
22+
tag_name: ${{ steps.get_tag.outputs.tag }}
23+
steps:
24+
- name: Récupérer le dernier tag via l'API GitHub
25+
id: get_tag
26+
run: |
27+
LATEST_TAG=$(gh api repos/${{ github.repository }}/git/matching-refs/tags/v --jq '.[-1].ref' | sed 's|refs/tags/||')
28+
if [[ -z "$LATEST_TAG" ]]; then
29+
echo "Aucun tag trouvé. Arrêt du workflow."
30+
exit 1
31+
fi
32+
echo "tag=$LATEST_TAG" >> "$GITHUB_OUTPUT"
33+
env:
34+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
35+
1836
validate-and-release:
37+
needs: determine-tag
1938
runs-on: windows-latest
2039
env:
2140
CARGO_TERM_COLOR: always
2241
RUSTFLAGS: -D warnings
42+
# Définition du tag selon l'événement déclencheur
43+
TAG_NAME: ${{ github.event_name == 'push' && github.ref_name || needs.determine-tag.outputs.tag_name }}
2344

2445
steps:
25-
- name: Checkout repository
46+
- name: Récupérer le code du dépôt
2647
uses: actions/checkout@v4
2748

28-
- name: Cache Cargo Registry
49+
- name: Mise en cache du Cargo Registry
2950
uses: actions/cache@v3
3051
with:
3152
path: ~/.cargo/registry
3253
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
3354
restore-keys: ${{ runner.os }}-cargo-registry-
3455

35-
- name: Cache Cargo Git Index
56+
- name: Mise en cache du Cargo Git Index
3657
uses: actions/cache@v3
3758
with:
3859
path: ~/.cargo/git
3960
key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }}
4061
restore-keys: ${{ runner.os }}-cargo-index-
4162

42-
- name: Install Rust
63+
- name: Installer Rust
4364
shell: pwsh
4465
run: rustup update stable && rustup default stable
4566

46-
- name: Install PSSemVer
67+
- name: Installer PSSemVer
4768
shell: pwsh
4869
run: |
4970
try {
5071
Import-Module -Name PSSemVer -ErrorAction Stop
5172
} catch {
52-
Write-Host "Installing PSSemVer module..."
73+
Write-Host "Installation du module PSSemVer..."
5374
Install-Module -Name PSSemVer -Scope CurrentUser -Force -ErrorAction Stop
5475
Import-Module -Name PSSemVer -ErrorAction Stop
5576
}
5677
57-
- name: Validate Tag with PSSemVer
78+
- name: Valider le tag avec PSSemVer
5879
id: validate
5980
shell: pwsh
6081
run: |
61-
# Récupère le nom du tag en supprimant le préfixe "v"
62-
$tagName = "${{ github.ref_name }}"
82+
# Récupérer le nom du tag en supprimant le préfixe "v"
83+
$tagName = "${{ env.TAG_NAME }}"
6384
Import-Module -Name PSSemVer -ErrorAction Stop
6485
try {
6586
$rawVersion = $tagName -replace '^v', ''
6687
$Version = [PSSemVer]::Parse($rawVersion)
6788
68-
# Forcer le booléen à une chaîne en minuscules
89+
# Convertir le booléen indiquant si la version est prerelease en chaîne en minuscules
6990
$prereleaseValue = ($Version.Prerelease -ne $null).ToString().ToLower()
7091
echo "prerelease=$prereleaseValue" >> $env:GITHUB_ENV
7192
72-
# Vérifier que le champ metadata est renseigné pour la version NuGet
73-
if (-not [string]::IsNullOrEmpty($Version.metadata)) {
93+
# Vérifier le champ metadata pour la version NuGet
94+
if (-not [string]::IsNullOrEmpty($Version.BuildMetadata)) {
7495
echo "nuget_version=$($Version.BuildMetadata)" >> $env:GITHUB_ENV
7596
} else {
76-
Write-Error "BuildMetadata is empty. Cannot determine NuGet version."
77-
exit 1
97+
Write-Host "Aucune métadonnée trouvée dans le tag. Utilisation de la version sans métadonnée pour NuGet."
98+
echo "nuget_version=$rawVersion" >> $env:GITHUB_ENV
7899
}
79100
} catch {
80-
Write-Error "Tag name does not contain a valid semantic version. Current tag: $tagName"
101+
Write-Error "Le nom du tag ne contient pas une version sémantique valide. Tag actuel : $tagName"
81102
exit 1
82103
}
83104
continue-on-error: false
84105

85-
- name: Cargo Publish Dry-Run
106+
- name: Exécuter Cargo Publish en mode Dry-Run
86107
run: cargo publish --dry-run
87108

88-
- name: Create GitHub Release
109+
- name: Créer une Release GitHub
89110
id: release
90111
uses: softprops/action-gh-release@v2
91112
with:
92-
tag_name: ${{ github.ref_name }}
93-
name: ${{ env.prerelease == 'true' && 'Prerelease' || 'Release' }} ${{ github.ref_name }}
113+
tag_name: ${{ env.TAG_NAME }}
114+
name: ${{ env.prerelease == 'true' && 'Prerelease' || 'Release' }} ${{ env.TAG_NAME }}
94115
body: |
95-
This is a ${{ env.prerelease == 'true' && 'prerelease' || 'release' }} of the crate.
96-
You can find the [crate here](https://crates.io/crates/${{ github.repository }}).
97-
This version is a binding for the WSLPluginAPI v${{ env.nuget_version }} available on [NuGet](https://www.nuget.org/packages/Microsoft.WSL.PluginApi/${{ env.nuget_version }}).
116+
Ceci est une ${{ env.prerelease == 'true' && 'prerelease' || 'release' }} de la crate.
117+
Vous pouvez retrouver la [crate ici](https://crates.io/crates/${{ github.repository }}).
118+
Cette version est un binding pour le WSLPluginAPI v${{ env.nuget_version }} disponible sur [NuGet](https://www.nuget.org/packages/Microsoft.WSL.PluginApi/${{ env.nuget_version }}).
98119
prerelease: ${{ env.prerelease == 'true' }}
99120
env:
100121
GITHUB_TOKEN: ${{ secrets.GH_PAT }}
101122

102-
- name: Cargo Publish
123+
- name: Publier sur Cargo
103124
run: cargo publish
104125
env:
105126
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}

0 commit comments

Comments
 (0)