blob: 3874b59ba01e3fe9490fd8fb53ca89bfea206d9f [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
name: 'Lucene.Net.Website'
# This will:
# checkout this repo
# get current or latest tag to parse a version for use in the website
# Build the website
# Checkout the website repo
# Create a branch
# Commit/Push to the branch
# Create a PR
on:
workflow_dispatch:
push:
tags:
- Website_*
#branches:
#- master
paths:
- 'websites/site/**/*'
env:
# If a tag is specified, the tag will be in the format: Website_4_8_0_beta00013 which
# will be parsed to create the version number used in the docs like 4.8.0-beta00013
RELEASE_VERSION: "(no tag)"
SITE_REPO: "${{ github.repository }}-site"
GIT_MAIN_REPO: "${{ github.workspace }}\\main-repo\\.git"
jobs:
build:
runs-on: windows-latest
steps:
# Checkout the main repo with all history so we get all tags
- name: Checkout Lucene.Net source
uses: actions/checkout@v2
with:
path: main-repo
fetch-depth: 0
- name: Set version from tag
run: |
$ref = $Env:GITHUB_REF
if ($ref.StartsWith("refs/tags/")) {
$tag = $ref.Substring(10)
echo "extracted tag name from refs/tags as $tag"
}
else {
echo "Get the latest Lucene.Net_ tag"
$tag = & git --git-dir "$Env:GIT_MAIN_REPO" tag --list --sort=-version:refname 'Lucene.Net_[0-9]_[0-9]_[0-9]*' | select -first 1
}
if ($tag -eq $null) {
echo "::error::Could not determine current version tag"
exit 1
}
$parts = $tag.Split("_")
$version = '';
For ($i=1; $i -le $parts.Length; $i++) {
$version += $parts[$i]
if ($i -eq ($parts.Length - 2)) {
$version += "-"
}
elseif ($i -lt ($parts.Length - 1)) {
$version += "."
}
}
if ($version -ne '') {
# the tag parsed to the correct version format, write the environment var
echo "parsed version is $version"
echo ("RELEASE_VERSION=" + $version) >> $env:GITHUB_ENV
}
else {
echo "::error::Could not parse current version tag"
exit 1
}
shell: powershell
- name: Verify environment variables
run: |
echo "RELEASE_VERSION=$Env:RELEASE_VERSION"
shell: powershell
- name: Build website
run: ./main-repo/websites/site/site.ps1 -Clean
shell: powershell
- name: Checkout Lucene.Net website
uses: actions/checkout@v2
with:
repository: ${{ env.SITE_REPO }}
ref: asf-site
path: website-repo
- name: Copy website files
run: Get-ChildItem -Path "$Env:GITHUB_WORKSPACE\main-repo\websites\site\_site" | Copy-Item -Destination "$Env:GITHUB_WORKSPACE\website-repo" -Recurse -Force
shell: powershell
- name: Create Pull Request
id: cpr
uses: peter-evans/create-pull-request@v3
with:
token: ${{ secrets.LUCENE_NET_WEBSITE_BUILD }}
path: website-repo
commit-message: New website version built
committer: GitHub <noreply@github.com>
author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
branch: task/website-build-${{ github.sha }}
delete-branch: true
title: 'New website build ${{ github.sha }}'
body: |
New website build on rev/tag ${{ github.sha }}
For release version ${{ env.RELEASE_VERSION }}
- name: Check outputs
run: |
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"