Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: add ubuntu 24.04 lanes to CI #276

Open
wants to merge 2 commits into
base: stable
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
216 changes: 215 additions & 1 deletion .github/workflows/CI.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
name: CI

on: [push, pull_request, workflow_dispatch]
on:
push:
pull_request:
workflow_dispatch:

# to execute once a day (more info see https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule )
schedule:
- cron: "0 0 * * *"


# FIXME: figure out why we need to clean after make if we
# want 'make strict' target to really happen without
Expand Down Expand Up @@ -180,6 +188,212 @@ jobs:

find . -type f -name "*.fsx" | xargs -t -I {} dotnet fsxc {}


# TODO: add linux24-github--dotnet-and-newmono & linux24-github--dotnet-and-mono when runs-on has 'ubuntu-24.04'
# ( https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories )

linux24-vanilla--stockmono-only:
runs-on: ubuntu-22.04
container:
image: "ubuntu:24.04"
steps:
- uses: actions/checkout@v1
# can't use the option below because of error "Input 'submodules' not supported when falling back to download using the GitHub REST API. To create a local Git repository instead, add Git 2.18 or higher to the PATH."
# with:
# submodules: 'true'

- name: install sudo
run: apt update && apt install --yes sudo
- name: install all dependencies
run: sudo DEBIAN_FRONTEND=noninteractive apt install --yes git make curl fsharp nunit-console

# workaround for https://github.com/actions/runner/issues/2033
- name: ownership workaround
run: git config --global --add safe.directory '*'

- name: check mono version
run: mono --version
- name: configure
run: ./configure.sh
- name: build in DEBUG mode
run: make
- name: sanity check
run: make sanitycheck
- name: unit tests
run: make check
- name: build in STRICT mode
run: git clean -fdx && ./configure.sh && make strict
- name: build in RELEASE mode
run: git clean -fdx && ./configure.sh && make release
- name: integration tests
run: make update-servers

linux24-vanilla--stockdotnet8-only:
runs-on: ubuntu-22.04
container:
image: "ubuntu:24.04"
steps:
- uses: actions/checkout@v1
# can't use the option below because of error "Input 'submodules' not supported when falling back to download using the GitHub REST API. To create a local Git repository instead, add Git 2.18 or higher to the PATH."
# with:
# submodules: 'true'

- name: install sudo
run: apt update && apt install --yes sudo
- name: install all dependencies
run: sudo DEBIAN_FRONTEND=noninteractive apt install --yes git make curl dotnet8

# workaround for https://github.com/actions/runner/issues/2033
- name: ownership workaround
run: git config --global --add safe.directory '*'

- name: configure
run: ./configure.sh
- name: build in DEBUG mode
run: make
- name: sanity check
run: make sanitycheck
- name: unit tests
run: make check
- name: build in STRICT mode
run: git clean -fdx && ./configure.sh && make strict
- name: build in RELEASE mode
run: git clean -fdx && ./configure.sh && make release
- name: integration tests
run: make update-servers
- name: compile .fsx scripts
run: |
dotnet new tool-manifest

# we need to install specific version because of this bug: https://github.com/dotnet/sdk/issues/24037
dotnet tool install fsxc --version 0.5.9.1

find . -type f -name "*.fsx" | xargs -t -I {} dotnet fsxc {}

linux24-vanilla--stockdotnet8-and-newmono:
runs-on: ubuntu-22.04
container:
image: "ubuntu:24.04"
steps:
- uses: actions/checkout@v1
# can't use the option below because of error "Input 'submodules' not supported when falling back to download using the GitHub REST API. To create a local Git repository instead, add Git 2.18 or higher to the PATH."
# with:
# submodules: 'true'

- name: install sudo
run: apt update && apt install --yes sudo
- name: install all dependencies
run: sudo DEBIAN_FRONTEND=noninteractive apt install --yes git make curl dotnet8
- name: install last version of mono (Microsoft APT repositories)
run: sudo ./scripts/install_mono_from_microsoft_deb_packages.sh

# workaround for https://github.com/actions/runner/issues/2033
- name: ownership workaround
run: git config --global --add safe.directory '*'

- name: configure
run: ./configure.sh
- name: build in DEBUG mode
run: make
- name: sanity check
run: make sanitycheck
- name: unit tests
run: make check
- name: build in STRICT mode
run: git clean -fdx && ./configure.sh && make strict
- name: build in RELEASE mode
run: git clean -fdx && ./configure.sh && make release
- name: integration tests
run: make update-servers
- name: compile .fsx scripts
run: |
dotnet new tool-manifest

# we need to install specific version because of this bug: https://github.com/dotnet/sdk/issues/24037
dotnet tool install fsxc --version 0.5.9.1

find . -type f -name "*.fsx" | xargs -t -I {} dotnet fsxc {}

linux24-vanilla--stockdotnet8-and-stockmono:
runs-on: ubuntu-22.04
container:
image: "ubuntu:24.04"
steps:
- uses: actions/checkout@v1
# can't use the option below because of error "Input 'submodules' not supported when falling back to download using the GitHub REST API. To create a local Git repository instead, add Git 2.18 or higher to the PATH."
# with:
# submodules: 'true'

- name: install sudo
run: apt update && apt install --yes sudo
- name: install all dependencies
run: sudo DEBIAN_FRONTEND=noninteractive apt install --yes git make curl dotnet8 mono-xbuild

# workaround for https://github.com/actions/runner/issues/2033
- name: ownership workaround
run: git config --global --add safe.directory '*'

- name: configure
run: ./configure.sh
- name: build in DEBUG mode
run: make
- name: sanity check
run: make sanitycheck
- name: unit tests
run: make check
- name: build in STRICT mode
run: git clean -fdx && ./configure.sh && make strict
- name: build in RELEASE mode
run: git clean -fdx && ./configure.sh && make release
- name: integration tests
run: make update-servers
- name: compile .fsx scripts
run: |
dotnet new tool-manifest

# we need to install specific version because of this bug: https://github.com/dotnet/sdk/issues/24037
dotnet tool install fsxc --version 0.5.9.1

find . -type f -name "*.fsx" | xargs -t -I {} dotnet fsxc {}

linux24-vanilla--newmono-only:
runs-on: ubuntu-22.04
container:
image: "ubuntu:24.04"
steps:
- uses: actions/checkout@v1
# can't use the option below because of error "Input 'submodules' not supported when falling back to download using the GitHub REST API. To create a local Git repository instead, add Git 2.18 or higher to the PATH."
# with:
# submodules: 'true'

- name: install sudo
run: apt update && apt install --yes sudo
- name: install all dependencies
run: sudo DEBIAN_FRONTEND=noninteractive apt install --yes git make curl fsharp nunit-console
- name: install last version of mono (Microsoft APT repositories)
run: sudo ./scripts/install_mono_from_microsoft_deb_packages.sh

# workaround for https://github.com/actions/runner/issues/2033
- name: ownership workaround
run: git config --global --add safe.directory '*'

- name: check mono version
run: mono --version
- name: configure
run: ./configure.sh
- name: build in DEBUG mode
run: make
- name: sanity check
run: make sanitycheck
- name: unit tests
run: make check
- name: build in STRICT mode
run: git clean -fdx && ./configure.sh && make strict
- name: build in RELEASE mode
run: git clean -fdx && ./configure.sh && make release
- name: integration tests
run: make update-servers

linux22-github--dotnet-and-mono:
runs-on: ubuntu-22.04
steps:
Expand Down
Loading