Update macos runner to version 14 #2889
Workflow file for this run
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
name: 'Continuous integration' | |
on: | |
workflow_dispatch: | |
inputs: | |
publish_release: | |
description: If this build should publish nuget packages | |
required: true | |
type: boolean | |
version_suffix: | |
description: Suffix of the version number. Can be used to create a preview package. | |
required: false | |
type: string | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- '**.md' | |
pull_request: | |
env: | |
configuration: Release | |
publish_release: ${{ github.event.inputs.publish_release }} | |
version_suffix: ${{ github.event.inputs.version_suffix }} | |
jobs: | |
build_macos: | |
name: Build (MacOS) | |
runs-on: macos-14 | |
if: github.event.inputs.publish_release != 'true' | |
defaults: | |
run: | |
shell: bash | |
env: | |
LD_LIBRARY_PATH: "/opt/homebrew/lib" | |
steps: | |
- name: Install dependencies | |
run: brew install gtk4 cairo gdk-pixbuf gobject-introspection meson | |
#- name: doc | |
# run: brew doctor | |
- name: stat | |
run: ls -lisa /opt/homebrew/lib | |
- name: Prepare git | |
run: git config --global core.autocrlf false | |
shell: bash | |
- name: Checkout with submodules | |
uses: actions/checkout@v4 | |
with: | |
submodules: 'true' | |
- name: Create Gir.Core | |
uses: ./.github/actions/create | |
with: | |
configuration: ${{ env.configuration }} | |
source_directory: './src' | |
shell: bash | |
build_windows: | |
name: Build (Windows) | |
runs-on: windows-latest | |
if: github.event.inputs.publish_release != 'true' | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- name: Install dependencies | |
uses: msys2/setup-msys2@v2 | |
with: | |
path-type: inherit # Inherit the path so that dotnet can be found | |
update: true | |
install: >- | |
mingw-w64-x86_64-cairo | |
mingw-w64-x86_64-gcc | |
mingw-w64-x86_64-gdk-pixbuf2 | |
mingw-w64-x86_64-gobject-introspection | |
mingw-w64-x86_64-meson | |
- name: Prepare git | |
run: git config --global core.autocrlf false | |
shell: bash | |
- name: Checkout with submodules | |
uses: actions/checkout@v4 | |
with: | |
submodules: 'true' | |
- name: Create Gir.Core | |
uses: ./.github/actions/create | |
with: | |
configuration: ${{ env.configuration }} | |
source_directory: './src' | |
shell: msys2 {0} | |
build_linux: | |
name: Build (Linux) | |
runs-on: ubuntu-latest | |
container: | |
image: fedora:latest | |
env: | |
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT: 1 | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Install dependencies | |
run: sudo dnf -y upgrade && sudo dnf -y install meson gobject-introspection-devel git gcc glib2-devel gdk-pixbuf2 gdk-pixbuf2-modules cairo-gobject | |
- name: Prepare git | |
run: git config --global core.autocrlf false | |
shell: bash | |
- name: Checkout with submodules | |
uses: actions/checkout@v4 | |
with: | |
submodules: 'true' | |
- name: Create Gir.Core | |
uses: ./.github/actions/create | |
with: | |
configuration: ${{ env.configuration }} | |
source_directory: './src' | |
shell: bash | |
- name: Verify code format | |
run: dotnet format GirCore.sln --no-restore --verify-no-changes --exclude *.Generated.cs | |
working-directory: './src' | |
- name: Run integration tests | |
run: dotnet test --no-restore -c $configuration --filter TestCategory=IntegrationTest | |
working-directory: './src' | |
- name: Pack release version | |
if: env.publish_release == 'true' | |
run: dotnet pack --no-build --nologo -c $configuration --version-suffix "$version_suffix" -o ../Nuget | |
working-directory: './src' | |
- name: Publish to nuget org | |
if: env.publish_release == 'true' | |
run: dotnet nuget push "*.nupkg" -k ${{ secrets.NUGET_API_KEY }} -s nuget.org | |
working-directory: './Nuget' |