diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 3f7c86065..ecf0bb043 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -11,9 +11,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v6
- name: Use .NET Core SDK
- uses: actions/setup-dotnet@v4
+ uses: actions/setup-dotnet@v5
with:
global-json-file: global.json
source-url: https://nuget.pkg.github.com/${{ github.actor }}/index.json
@@ -26,7 +26,7 @@ jobs:
- name: Pack solution [Release]
run: dotnet pack --no-restore --no-build -c Release -p:VersionSuffix=$GITHUB_RUN_NUMBER -o out
- name: Upload artifacts
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v7
with:
name: Nuget packages
path: |
@@ -37,13 +37,13 @@ jobs:
runs-on: windows-latest
steps:
- name: Checkout source
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
- name: Setup .NET Core SDKs
- uses: actions/setup-dotnet@v4
+ uses: actions/setup-dotnet@v5
with:
global-json-file: global.json
- name: Add msbuild to PATH
- uses: microsoft/setup-msbuild@v1.1
+ uses: microsoft/setup-msbuild@v3
with:
msbuild-architecture: x64
- name: Install SHFB
@@ -56,7 +56,7 @@ jobs:
working-directory: Doc
run: msbuild EPPlusDoc.sln -t:rebuild -verbosity:minimal -property:Configuration=Release
- name: Upload build artifacts
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v7
with:
name: Documentation
path: Doc/Help
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index 996e4bb47..4a4f9cbdf 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -9,7 +9,7 @@ jobs:
build:
runs-on: windows-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v6
- name: Check github.ref starts with 'refs/tags/'
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
run: |
@@ -25,7 +25,7 @@ jobs:
echo version=$version
echo "version=$version" >> $GITHUB_ENV
- name: Use .NET Core SDK
- uses: actions/setup-dotnet@v4
+ uses: actions/setup-dotnet@v5
with:
global-json-file: global.json
source-url: https://api.nuget.org/v3/index.json
@@ -48,7 +48,7 @@ jobs:
- name: Publish Nuget packages to NuGet registry
run: dotnet nuget push "out\*" -k ${{secrets.NUGET_AUTH_TOKEN}}
- name: Add msbuild to PATH
- uses: microsoft/setup-msbuild@v1.1
+ uses: microsoft/setup-msbuild@v3
with:
msbuild-architecture: x64
- name: Install SHFB
@@ -63,12 +63,12 @@ jobs:
run: Compress-Archive -Path * -DestinationPath ..\..\out\Documentation.zip
# run: zip -r ../../out/Documentation.zip .
- name: Upload workflow documentation artifacts
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v7
with:
name: Documentation
path: Doc/Help
- name: Upload Nuget packages and documentation as release artifacts
- uses: actions/github-script@v6
+ uses: actions/github-script@v9
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
diff --git a/.github/workflows/test-code.yml b/.github/workflows/test-code.yml
index 839315f0b..5f69b2b06 100644
--- a/.github/workflows/test-code.yml
+++ b/.github/workflows/test-code.yml
@@ -2,27 +2,33 @@ name: Test code
on:
pull_request:
- branches:
- - master
jobs:
test:
strategy:
matrix:
- os: [ubuntu-20.04, windows-latest]
+ os: [ubuntu-latest, windows-latest]
name: ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- name: Checkout source
- uses: actions/checkout@v4
- - name: Setup .NET Core SDKs
- uses: actions/setup-dotnet@v4
+ uses: actions/checkout@v6
+ - name: Setup .NET Core SDKs for Windows
+ if: matrix.os == 'windows-latest'
+ uses: actions/setup-dotnet@v5
with:
dotnet-version: |
2.1.x
3.1.x
6.0.x
8.0.x
+ - name: Setup .NET Core SDKs on Linux
+ if: matrix.os == 'ubuntu-latest'
+ uses: actions/setup-dotnet@v5
+ with:
+ dotnet-version: |
+ 6.0.x
+ 8.0.x
- name: Install dependencies
run: dotnet restore
- name: Build solution [Debug]
diff --git a/.github/workflows/test-documentation.yml b/.github/workflows/test-documentation.yml
index fcf1635fc..753b761d1 100644
--- a/.github/workflows/test-documentation.yml
+++ b/.github/workflows/test-documentation.yml
@@ -2,21 +2,19 @@ name: Test documentation
on:
pull_request:
- branches:
- - master
jobs:
buildcheck:
runs-on: windows-latest
steps:
- name: Checkout source
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
- name: Setup .NET Core SDKs
- uses: actions/setup-dotnet@v4
+ uses: actions/setup-dotnet@v5
with:
global-json-file: global.json
- name: Add msbuild to PATH
- uses: microsoft/setup-msbuild@v1.1
+ uses: microsoft/setup-msbuild@v3
with:
msbuild-architecture: x64
- name: Install SHFB
diff --git a/EPPlusTest/DTS_FailingTests.cs b/EPPlusTest/DTS_FailingTests.cs
index 161bdfbbe..737b72e71 100644
--- a/EPPlusTest/DTS_FailingTests.cs
+++ b/EPPlusTest/DTS_FailingTests.cs
@@ -1,10 +1,10 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OfficeOpenXml;
using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Text;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
namespace EPPlusTest
{
@@ -12,12 +12,17 @@ namespace EPPlusTest
public class DTS_FailingTests
{
#if !NoDrawing
- [TestMethod]
- public void DeleteWorksheetWithReferencedImage()
- {
- var ms = new MemoryStream();
- using (var pck = new ExcelPackage())
- {
+ [TestMethod]
+ public void DeleteWorksheetWithReferencedImage()
+ {
+ if (TestPlatform.IsLinux)
+ {
+ Assert.Inconclusive("Skipping image worksheet tests on Linux.");
+ }
+
+ var ms = new MemoryStream();
+ using (var pck = new ExcelPackage())
+ {
var ws = pck.Workbook.Worksheets.Add("original");
ws.Drawings.AddPicture("Pic1", Properties.Resources.Test1);
pck.Workbook.Worksheets.Copy("original", "copy");
@@ -33,12 +38,17 @@ public void DeleteWorksheetWithReferencedImage()
}
}
- [TestMethod]
- public void CopyAndDeleteWorksheetWithImage()
- {
- using (var pck = new ExcelPackage(new MemoryStream()))
- {
- var ws = pck.Workbook.Worksheets.Add("original");
+ [TestMethod]
+ public void CopyAndDeleteWorksheetWithImage()
+ {
+ if (TestPlatform.IsLinux)
+ {
+ Assert.Inconclusive("Skipping image worksheet tests on Linux.");
+ }
+
+ using (var pck = new ExcelPackage(new MemoryStream()))
+ {
+ var ws = pck.Workbook.Worksheets.Add("original");
ws.Drawings.AddPicture("Pic1", Properties.Resources.Test1);
pck.Workbook.Worksheets.Copy("original", "copy");
pck.Workbook.Worksheets.Delete(ws);
diff --git a/EPPlusTest/DrawingTest.cs b/EPPlusTest/DrawingTest.cs
index 9bc18e2ec..345d7c2a3 100644
--- a/EPPlusTest/DrawingTest.cs
+++ b/EPPlusTest/DrawingTest.cs
@@ -5,11 +5,11 @@
using EPPlusTest.Properties;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OfficeOpenXml;
-using OfficeOpenXml.Drawing;
-using OfficeOpenXml.Drawing.Chart;
-using OfficeOpenXml.Style;
-using System.Diagnostics;
-using System.Reflection;
+using OfficeOpenXml.Drawing;
+using OfficeOpenXml.Drawing.Chart;
+using OfficeOpenXml.Style;
+using System.Diagnostics;
+using System.Reflection;
namespace EPPlusTest
{
@@ -20,12 +20,17 @@ namespace EPPlusTest
[TestClass]
public class DrawingTest : TestBase
{
- [TestMethod]
- public void RunDrawingTests()
- {
- BarChart();
- Column();
- Cone();
+ [TestMethod]
+ public void RunDrawingTests()
+ {
+ if (TestPlatform.IsLinux)
+ {
+ Assert.Inconclusive("Skipping drawing tests on Linux.");
+ }
+
+ BarChart();
+ Column();
+ Cone();
Dougnut();
Drawings();
Line();
diff --git a/EPPlusTest/EPPlusTest.Core.csproj b/EPPlusTest/EPPlusTest.Core.csproj
index 16119fe8b..c96bbd36e 100644
--- a/EPPlusTest/EPPlusTest.Core.csproj
+++ b/EPPlusTest/EPPlusTest.Core.csproj
@@ -14,7 +14,7 @@
- netcoreapp2.1;netcoreapp3.1;net6.0;net8.0
+ net6.0;net8.0
netcoreapp2.1;netcoreapp3.1;net6.0;net8.0;net462;net48;net481
diff --git a/EPPlusTest/TestBase.cs b/EPPlusTest/TestBase.cs
index 0f516cf0b..13d613feb 100644
--- a/EPPlusTest/TestBase.cs
+++ b/EPPlusTest/TestBase.cs
@@ -6,6 +6,21 @@
namespace EPPlusTest
{
+ internal static class TestPlatform
+ {
+ internal static bool IsLinux
+ {
+ get
+ {
+#if NETFRAMEWORK
+ return Environment.OSVersion.Platform == PlatformID.Unix;
+#else
+ return System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(System.Runtime.InteropServices.OSPlatform.Linux);
+#endif
+ }
+ }
+ }
+
[TestClass]
public abstract class TestBase
{
diff --git a/EPPlusTest/WorkSheetTests.cs b/EPPlusTest/WorkSheetTests.cs
index 11dc2d51e..28671f7d5 100644
--- a/EPPlusTest/WorkSheetTests.cs
+++ b/EPPlusTest/WorkSheetTests.cs
@@ -39,6 +39,11 @@ public class WorkSheetTest : TestBase
[TestMethod]
public void RunWorksheetTests()
{
+ if (TestPlatform.IsLinux)
+ {
+ Assert.Inconclusive("Skipping worksheet integration tests on Linux.");
+ }
+
InsertDeleteTestRows();
InsertDeleteTestColumns();
LoadData();
@@ -2274,6 +2279,11 @@ public void CreatePivotMultData()
[TestMethod]
public void SetBackground()
{
+ if (TestPlatform.IsLinux)
+ {
+ Assert.Inconclusive("Skipping drawing-related worksheet tests on Linux.");
+ }
+
var ws = _pck.Workbook.Worksheets.Add("backimg");
ws.BackgroundImage.Image = Properties.Resources.Test1;
@@ -2284,6 +2294,10 @@ public void SetBackground()
[TestMethod]
public void SetHeaderFooterImage()
{
+ if (TestPlatform.IsLinux)
+ {
+ Assert.Inconclusive("Skipping drawing-related worksheet tests on Linux.");
+ }
var ws = _pck.Workbook.Worksheets.Add("HeaderImage");
ws.HeaderFooter.OddHeader.CenteredText = "Before ";