Skip to content

apache/logging-site#48 Fix the license name in the page footer #449

apache/logging-site#48 Fix the license name in the page footer

apache/logging-site#48 Fix the license name in the page footer #449

Workflow file for this run

#
# 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: build
on:
workflow_dispatch:
push:
branches:
- master
pull_request:
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ macos-latest, ubuntu-latest, windows-latest ]
env:
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_CLI_TELEMETRY_OPTOUT: 1
steps:
- name: Checkout repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # 4.1.7
- name: Set up dotnet
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # 6.0.0
with:
dotnet-version: 10
dotnet-quality: ga
- name: Build
run: |
dotnet build ./src/log4net.sln
- name: Test
run: |
dotnet test ./src/log4net.sln
# Recompiles both shipping projects through docfx with warnings as errors, so a broken doc
# comment or cref fails the pull request rather than the release build. The script itself
# is covered on all three runners by the Pester suite below; the real docfx run needs one.
- name: API reference
if: matrix.os == 'ubuntu-latest'
shell: pwsh
run: ./scripts/build-api-docs.ps1
# Pester 5.9 ships on all three runner images, so nothing is installed here.
- name: Release script tests
shell: pwsh
run: |
$result = Invoke-Pester ./scripts -Output Detailed -PassThru
if ($result.FailedCount -ne 0) { exit 1 }
# From pwsh, as build-release.ps1 calls it: mvnw.cmd 3.2.0 failed its checksum there on Windows.
- name: Maven wrapper
shell: pwsh
run: ./mvnw -v
# Runs the same probes twice, JIT compiled and published with Native AOT, so that a
# difference between the two is caused by AOT rather than by the platform. The project
# knows which probes are expected to fail in each mode and exits non-zero when reality
# does not match, in either direction.
- name: AOT probes
shell: pwsh
env:
"log4net.AotEnvironmentProbe": from-environment
run: |
$PSNativeCommandUseErrorActionPreference = $true
dotnet run --project ./src/log4net.Tests.Aot/log4net.Tests.Aot.csproj -c Release
dotnet publish ./src/log4net.Tests.Aot/log4net.Tests.Aot.csproj -c Release -o ./aot-probes
& "./aot-probes/log4net.Tests.Aot$($IsWindows ? '.exe' : '')"
# A process that hosts the runtime natively has no entry assembly, so the configuration
# system cannot work out where the config file is (issue #162). The check owns the process
# from its first statement, because the configuration system caches its initialization and
# log4net reads its first setting from a static constructor, so it cannot be one of the
# probes above.
#
# JIT only, deliberately: under Native AOT the configuration system is trimmed away, so the
# first setting read fails as a missing constructor long before it can fail for want of an
# entry assembly. The published executable passes this check with the fix reverted, which
# makes it a green that cannot fail for the reason the check exists.
- name: AOT probes, no entry assembly
shell: pwsh
run: dotnet run --project ./src/log4net.Tests.Aot/log4net.Tests.Aot.csproj -c Release -- --no-entry-assembly