Build Bulma 4 Hugo #63
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This is a basic workflow to help you get started with Actions | |
name: Build Bulma 4 Hugo | |
# Controls when the workflow will run | |
on: | |
# Triggers the workflow on push or pull request events but only for the "main" branch | |
push: | |
branches: ["main"] | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
jobs: | |
build: | |
runs-on: windows-latest | |
env: | |
GH_TOKEN: ${{ github.token }} | |
permissions: | |
contents: write | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v4 | |
# Runs a set of commands using the runners shell | |
- name: Configure Git | |
run: | | |
git fetch --tags | |
git config --local core.autocrlf "false" | |
git config --local user.name ${{ secrets.GH_USER_NAME }} | |
git config --global user.email ${{ secrets.GH_USER_MAIL }} | |
- name: Init scripts | |
run: | | |
[void](New-Item -Type Directory ./src -ErrorAction Stop) | |
Copy-Item ./build.ps1 ./src -ErrorAction Stop | |
- name: Prepare repository | |
run: | | |
Remove-Item -Recurse .\assets -ErrorAction SilentlyContinue | |
Remove-Item -Recurse .\.github -ErrorAction SilentlyContinue | |
Remove-Item .\.gitignore -ErrorAction SilentlyContinue | |
Remove-Item .\build.ps1 -ErrorAction SilentlyContinue | |
if (Test-Path .\assets) { throw ".\assets should not exist"} | |
if (Test-Path .\build.ps1) { throw ".\build.ps1 should not exist"} | |
if (Test-Path .\.gitignore) { throw ".\assets should not exist"} | |
if (Test-Path .\.github) { throw ".\assets should not exist"} | |
- name: Download Bulma | |
run: | | |
$Tags = git tag | |
# get list of Bulma Releases | |
$BULMA_URL = "https://api.github.com/repos/jgthms/bulma" | |
$BulmaRelease = Invoke-RestMethod -FollowRelLink -Uri "$BULMA_URL/releases?per_page=100" | %{$_}| ForEach-Object { | |
if (($_.tag_name) -and ($Tags -contains $tag_name)) { | |
Write-Output "already packed: Bulma $tag_name" | |
} else { | |
[PSCustomObject]@{ | |
version = [version]$_.tag_name | |
archive = [string]$_.assets.name | |
download = [string]$_.assets.browser_download_url | |
} | |
} | |
} | Sort-Object -Property version | Select-Object -First 1 | |
if ($BulmaRelease) { | |
Write-Output "Downloading Bulma $($BulmaRelease.version)" | |
Invoke-WebRequest -Uri $BulmaRelease.download -OutFile $BulmaRelease.archive | |
$bulmaFolder = (Get-Item $BulmaRelease.archive).Basename | |
[void](New-Item -Type Directory ./assets -ErrorAction Stop) | |
if (-Not (Test-Path .\assets -PathType Container)) { throw "missing folder: assets"} | |
Expand-Archive -LiteralPath $BulmaRelease.archive -DestinationPath .\assets | |
if (Test-Path .\assets\__MACOSX) { Remove-Item .\assets\__MACOSX -ErrorAction SilentlyContinue -Recurse } | |
Rename-Item .\assets\$bulmaFolder "bulma" | |
if (-Not (Test-Path ./assets/bulma -PathType Container)) { throw "missing folder: assets/bulma folder"} | |
echo "BULMA_VERSION=$($BulmaRelease.version)" | Out-File $Env:GITHUB_ENV -Append -Encoding utf8 | |
} else { | |
echo "BULMA_VERSION='NONE'" | Out-File $Env:GITHUB_ENV -Append -Encoding utf8 | |
} | |
- name: Create Release | |
if: ${{ env.BULMA_VERSION != 'NONE' }} | |
run: | | |
Write-Host "Creating Release for $ENV:BULMA_VERSION" | |
$BulmaVersion = "$ENV:BULMA_VERSION" | |
git checkout -b "bulma-$BulmaVersion" | |
Remove-Item -Recurse .\.github -ErrorAction SilentlyContinue | |
Remove-Item .\.gitignore -ErrorAction SilentlyContinue | |
Remove-Item .\build.ps1 -ErrorAction SilentlyContinue | |
git add . | |
git commit -m "add Bulma v$BulmaVersion" | |
git tag -a "v$BulmaVersion" -m "packed Bulma release v$BulmaVersion" | |
git push --tags | |
git checkout main | |
git branch -D "bulma-$BulmaVersion" | |