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

Fixing CI builds of version 1.117 #192

Draft
wants to merge 10 commits into
base: version/1.117
Choose a base branch
from
Draft
Show file tree
Hide file tree
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
113 changes: 113 additions & 0 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# .github/workflows/build-and-test.yml -- GitHub CI build and test configuration for the MPS
#
# Copyright (c) 2019-2022 `GitHub contributors`_ (MIT License).
# Copyright (c) 2023 Ravenbrook Limited. See end of file for license.
#
# See design.mps.test.ci.
#
# TODO: Exclude certain branches.
#
# TODO: Regular builds of version branches. See
# <https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onschedule>.

name: build and test

on:
- push
- pull_request
# Also run when triggered manually, e.g. by tool/github-ci-kick
# <https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow>
- workflow_dispatch

jobs:

posix:

# The build matrix for GitHub CI on Posix platforms
#
# See design.mps.tests.ci.github.platforms.
#
# FreeBSD and ARM64 targets are in Travis CI, configured by
# .travis.yml.
#
# See <https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs#using-a-matrix-strategy>.

strategy:
matrix:
os: [ubuntu-latest, macos-latest]
compiler: [clang, gcc]
exclude:
- os: macos-latest
compiler: gcc

runs-on: ${{ matrix.os }}

# See design.mps.tests.ci.run.posix.
steps:
- uses: actions/checkout@v3
- run: CC=${{ matrix.compiler }} ./configure
- run: make
- run: make test

windows:

runs-on: windows-latest

# See design.mps.tests.ci.run.windows.
#
# The path to Visual Studio is documented at
# <https://github.com/actions/runner-images/blob/e6fcf60b8e6c0f80a065327eaefe836881c28b68/images/win/Windows2022-Readme.md?plain=1#L215>.

steps:
- uses: actions/checkout@v3
- run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
cd code
nmake /f w3i6mv.nmk all testci testansi testpollnone
shell: cmd


# A. REFERENCES
#
# [GitHub CI] "About continuous integration"; <https://docs.github.com/en/actions/automating-builds-and-tests/about-continuous-integration>.
#
#
# B. DOCUMENT HISTORY
#
# 2023-01-11 RB Adapted from <https://github.com/actions/starter-workflows/blob/9f245d9aba830ad16a097a45c78331a05114d815/ci/c-cpp.yml>.
# 2023-01-15 RB Added licence and document history.
#
#
# C. COPYRIGHT AND LICENSE
#
# NOTE: This is the `MIT Licence <https://opensource.org/licenses/MIT>`_
# inherited from
# <https://github.com/actions/starter-workflows/blob/9f245d9aba830ad16a097a45c78331a05114d815/ci/c-cpp.yml> and not the usual licence for the MPS.
#
# Copyright (c) 2019-2022 `GitHub contributors`_.
# Copyright (c) 2023 Ravenbrook Limited <https://www.ravenbrook.com/>.
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#
# .. _GitHub contributors: https://github.com/actions/starter-workflows/commits/1d9d6d7fb0a8a27ef98efbbfa9689cd14c906383/ci/c-cpp.yml
#
#
# $Id$
1 change: 0 additions & 1 deletion .gitignore

This file was deleted.

32 changes: 32 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# .p4ignore -- Perforce files to ignore from MPS Project
# $Id$
# Don't forget to consider files in more specific directories.
# Personal Perforce configurations
.p4config
# Mac OS X Finder turds
.DS_Store
# Patch results
*.orig
*.rej
# Autoconf and Automake output
Makefile
autom4te.cache
config.log
config.status
.deps
.dirstamp
bin
lib
# Misc
TAGS
*.dSYM
*.pyc
test/obj
test/test/log
test/test/obj
....gcda
....gcno
\#*#
*~
.#.*
core
32 changes: 0 additions & 32 deletions .p4ignore

This file was deleted.

1 change: 1 addition & 0 deletions .p4ignore
69 changes: 69 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# .readthedocs.yaml -- Build configuration for MPS manual on Read The Docs
#
# Copyright (c) 2023 Ravenbrook Limited. See end of file for license.
#
# This file controls how Read the Docs builds and publishes the MPS
# manual at <https://memory-pool-system.readthedocs.io/>.
#
# See <https://docs.readthedocs.io/en/stable/config-file/v2.html> for
# the file format.
#
# Project configuration is at
# <https://readthedocs.org/projects/memory-pool-system/>. The GitHub
# Ravenbot user <[email protected]> is an administrator
# <https://readthedocs.org/profiles/Ravenbot/>.

version: 2

build:
os: ubuntu-22.04
tools:
python: '3'

python:
install:
- requirements: manual/requirements.pip

sphinx:
configuration: manual/source/conf.py

# A. REFERENCES
#
# [Readthedocs] "Read the Docs: Documentation Simplified";
# <https://docs.readthedocs.io/en/stable/>.
#
#
# B. DOCUMENT HISTORY
#
# 2023-02-02 RB Created as part of MPS GitHub migration.
#
#
# C. COPYRIGHT AND LICENSE
#
# Copyright © 2023 Ravenbrook Limited <https://www.ravenbrook.com/>.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#
# $Id$
90 changes: 79 additions & 11 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,24 +1,53 @@
# .travis.yml -- Travis CI configuration for the MPS
# $Id$
# See <http://about.travis-ci.org/docs/user/languages/c/>.
language: c
#
# Copyright (c) 2013-2023 Ravenbrook Limited. See end of file for license.
#
# See design.mps.test.ci.

# Some branches don't need builds. Add them here to avoid using build
# resources and unnecessary build messages. See
# <https://docs.travis-ci.com/user/conditions-v1>.
if: NOT branch IN (branch/2023-01-11/github-ci)

language: c # see <https://docs.travis-ci.com/user/languages/c/>.

# The build matrix for Travis CI
#
# See design.mps.tests.ci.travis.platforms.
#
# Most x86_64/amd64 builds are in GitHub CI, configured by
# .github/workflows/build-and-test.yml.

os:
- freebsd
- linux
- osx
# See "include" section for Windows
arch:
- amd64
- arm64
compiler:
- clang
- gcc

script: # see design.mps.test.ci.run.posix
- ./configure --prefix=$PWD/prefix && make install && make test

matrix:

# Extra build jobs to add to the matrix
include:
- os: windows

# GitHub CI does not provide FreeBSD
# <https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources>
# on any architecture, so we add it here for amd64. See also
# design.mps.tests.ci.travis.platforms.

- os: freebsd
arch: amd64
compiler: clang
- os: freebsd
arch: amd64
compiler: clang # This is a lie since we invoke MV (Microsoft C)
script: MSYS2_ARG_CONV_EXCL='*' cmd /c 'code\w3i6mv.bat'
compiler: gcc

# Specific combinations to exclude from the matrix
exclude:
- os: osx
compiler: gcc
Expand All @@ -35,5 +64,44 @@ notifications:
#before_install:
# - if test "$TRAVIS_OS_NAME" = "linux"; then sudo apt-get -qq update; fi
# - if test "$TRAVIS_OS_NAME" = "linux"; then sudo apt-get install -y gcc-4.7; fi
script:
- ./configure --prefix=$PWD/prefix && make install && make test


# A. REFERENCES
#
#
# B. DOCUMENT HISTORY
#
# 2013-05-19 RB Created.
# 2023-01-15 RB Added licence and (note) document history.
#
#
# C. COPYRIGHT AND LICENSE
#
# Copyright (C) 2013-2023 Ravenbrook Limited <https://www.ravenbrook.com/>.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the
# distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#
# $Id$
1 change: 0 additions & 1 deletion code/.gitignore

This file was deleted.

Loading