Merge pull request #30 from jepler/add-forgejo-actions
This commit is contained in:
commit
e25d545090
10 changed files with 111 additions and 63 deletions
96
.forgejo/workflows/ci.yml
Normal file
96
.forgejo/workflows/ci.yml
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
name: m68k macintosh port
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
release:
|
||||
types:
|
||||
- created # forgejo does not document the value "created"
|
||||
- published
|
||||
|
||||
# (may not be used by forgejo, but is ignored for now)
|
||||
concurrency:
|
||||
group: ${{ forge.workflow }}-${{ forge.ref_name }}-${{ forge.event_name }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
permissions: write-all
|
||||
runs-on: codeberg-tiny
|
||||
container:
|
||||
image: ghcr.io/m68k-micropython/retro68@sha256:fb78281a61f1324a3d552f1a8bbf8b35690926f0b11da2dacddd985f4ff4acac
|
||||
steps:
|
||||
- name: Set up tea
|
||||
run: |
|
||||
set -x
|
||||
ARCH=$(dpkg --print-architecture)
|
||||
curl -sL https://dl.gitea.io/tea/"$TEA_VERSION"/tea-"$TEA_VERSION"-linux-"$ARCH" > /usr/local/bin/tea
|
||||
chmod +x /usr/local/bin/tea
|
||||
tea --version
|
||||
env:
|
||||
TEA_VERSION: "0.10.1"
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
# These get confused by some submodules, oof
|
||||
- name: Install packages for C code formatting
|
||||
run: pip install --break-system-packages micropython-uncrustify
|
||||
- name: Run C code formatting
|
||||
run: source tools/ci.sh && ci_c_code_formatting_run
|
||||
- name: Check code formatting
|
||||
run: git diff --exit-code
|
||||
|
||||
- name: Check spelling
|
||||
run: |
|
||||
pip install --break-system-packages codespell==2.4.1 tomli
|
||||
codespell
|
||||
|
||||
- name: Run ruff
|
||||
run: |
|
||||
pip install --break-system-packages ruff==0.11.6
|
||||
ruff check --output-format=github .
|
||||
ruff format --diff .
|
||||
|
||||
|
||||
- name: Build m68k port
|
||||
run: |
|
||||
git config --global --add safe.directory $(pwd)
|
||||
make -C mpy-cross -j$(nproc)
|
||||
make -C ports/m68kmac submodules
|
||||
make -C ports/m68kmac -j$(nproc) MICROPY_USE_COMPILER_PLUGIN=gcc
|
||||
|
||||
- name: Prepare release distribution
|
||||
run: |
|
||||
mkdir dist/
|
||||
cp ports/m68kmac/build/micropython.{bin,dsk} dist/
|
||||
|
||||
- name: Attach files to actions run
|
||||
if: ${{ forge.event_name != 'release' }}
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
path: dist/*
|
||||
|
||||
- name: Run tests via "unix" port
|
||||
run: |
|
||||
make -C ports/unix submodules
|
||||
make -C ports/unix -j$(nproc)
|
||||
ulimit -n 1024; \
|
||||
cd tests; \
|
||||
if ! ./run-tests.py -e "cmdline/repl_" -e "asyncio_fair" -e "asyncio_heaplock"; then \
|
||||
./run-tests.py --print-failures; \
|
||||
exit 1;\
|
||||
fi
|
||||
|
||||
- name: Check build directory size
|
||||
run: du -shx
|
||||
|
||||
- name: Attach files to release
|
||||
if: ${{ forge.event_name == 'release' }}
|
||||
run: |
|
||||
tools/add_release_assets.sh
|
||||
env:
|
||||
TEA_VERSION: "0.10.1"
|
||||
EVENT_DATA: ${{ forge.event_path }}
|
||||
GITEA_SERVER_TOKEN: ${{ forge.token }}
|
||||
FORGE_SERVER_URL: ${{ forge.server_url }}
|
||||
TAG: ${{ forge.event.release.name }}
|
||||
41
.github/workflows/ports_unix.yml
vendored
41
.github/workflows/ports_unix.yml
vendored
|
|
@ -20,49 +20,14 @@ concurrency:
|
|||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
coverage:
|
||||
standard:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-python@v5
|
||||
# Python 3.12 is the default for ubuntu-24.04, but that has compatibility issues with settrace tests.
|
||||
# Can remove this step when ubuntu-latest uses a more recent Python 3.x as the default.
|
||||
with:
|
||||
python-version: '3.11'
|
||||
- name: Install packages
|
||||
run: source tools/ci.sh && ci_unix_coverage_setup
|
||||
- name: Build
|
||||
run: source tools/ci.sh && ci_unix_coverage_build
|
||||
run: source tools/ci.sh && ci_unix_standard_build
|
||||
- name: Run main test suite
|
||||
run: source tools/ci.sh && ci_unix_coverage_run_tests
|
||||
- name: Test merging .mpy files
|
||||
run: source tools/ci.sh && ci_unix_coverage_run_mpy_merge_tests
|
||||
- name: Build native mpy modules
|
||||
run: source tools/ci.sh && ci_native_mpy_modules_build
|
||||
- name: Test importing .mpy generated by mpy_ld.py
|
||||
run: source tools/ci.sh && ci_unix_coverage_run_native_mpy_tests
|
||||
- name: Run gcov coverage analysis
|
||||
run: |
|
||||
(cd ports/unix && gcov -o build-coverage/py ../../py/*.c || true)
|
||||
(cd ports/unix && gcov -o build-coverage/extmod ../../extmod/*.c || true)
|
||||
- name: Print failures
|
||||
if: failure()
|
||||
run: tests/run-tests.py --print-failures
|
||||
|
||||
coverage_32bit:
|
||||
runs-on: ubuntu-22.04 # use 22.04 to get libffi-dev:i386
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install packages
|
||||
run: source tools/ci.sh && ci_unix_32bit_setup
|
||||
- name: Build
|
||||
run: source tools/ci.sh && ci_unix_coverage_32bit_build
|
||||
- name: Run main test suite
|
||||
run: source tools/ci.sh && ci_unix_coverage_32bit_run_tests
|
||||
- name: Build native mpy modules
|
||||
run: source tools/ci.sh && ci_native_mpy_modules_32bit_build
|
||||
- name: Test importing .mpy generated by mpy_ld.py
|
||||
run: source tools/ci.sh && ci_unix_coverage_32bit_run_native_mpy_tests
|
||||
run: source tools/ci.sh && ci_unix_standard_run_tests
|
||||
- name: Print failures
|
||||
if: failure()
|
||||
run: tests/run-tests.py --print-failures
|
||||
|
|
|
|||
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -24,3 +24,6 @@ user.props
|
|||
|
||||
# MacOS desktop metadata files
|
||||
.DS_Store
|
||||
|
||||
# Created during the distribution making process
|
||||
/dist
|
||||
|
|
|
|||
1
esp-idf
1
esp-idf
|
|
@ -1 +0,0 @@
|
|||
Subproject commit 8153bfe4125e6a608abccf1561fd10285016c90a
|
||||
|
|
@ -7,5 +7,5 @@ if [ $# -eq 0 ]; then it=-it; else it=; fi
|
|||
docker run \
|
||||
-w /work/ports/m68kmac --rm \
|
||||
-v "${TOP}":/work \
|
||||
${it} ghcr.io/m68k-micropython/builder:latest "$@"
|
||||
${it} ghcr.io/m68k-micropython/retro68:latest "$@"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
MAKEFLAGS=-j10
|
||||
VARIANT ?= coverage
|
||||
include Makefile
|
||||
|
|
@ -20,18 +20,6 @@ MICROPY_PY_TERMIOS = 1
|
|||
# Subset of CPython socket module
|
||||
MICROPY_PY_SOCKET = 1
|
||||
|
||||
# ffi module requires libffi (libffi-dev Debian package)
|
||||
MICROPY_PY_FFI = 1
|
||||
|
||||
# ssl module requires one of the TLS libraries below
|
||||
MICROPY_PY_SSL = 1
|
||||
# axTLS has minimal size but implements only a subset of modern TLS
|
||||
# functionality, so may have problems with some servers.
|
||||
MICROPY_SSL_AXTLS = 0
|
||||
# mbedTLS is more up to date and complete implementation, but also
|
||||
# more bloated.
|
||||
MICROPY_SSL_MBEDTLS = 1
|
||||
|
||||
# jni module requires JVM/JNI
|
||||
MICROPY_PY_JNI = 0
|
||||
|
||||
|
|
|
|||
|
|
@ -12,13 +12,5 @@ LDFLAGS += -fprofile-arcs -ftest-coverage
|
|||
FROZEN_MANIFEST ?= $(VARIANT_DIR)/manifest.py
|
||||
USER_C_MODULES = $(TOP)/examples/usercmodule
|
||||
|
||||
# Optionally format the generated files with uncrustify if installed
|
||||
ifneq ($(shell which uncrustify-apple-macos-gcc),)
|
||||
MKAPIFORMAT = --format
|
||||
endif
|
||||
include $(TOP)/extmod/multiversal.mk
|
||||
$(eval $(call multiversal_module,mkapitest,variants/coverage/mkapi_test.yaml))
|
||||
$(info $(call multiversal_module,mkapitest,variants/coverage/mkapi_test.yaml))
|
||||
|
||||
SRC_C += coverage.c
|
||||
SRC_CXX += coveragecpp.cpp
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
# This is the default variant when you `make` the Unix port.
|
||||
|
||||
FROZEN_MANIFEST ?= $(VARIANT_DIR)/manifest.py
|
||||
|
||||
include $(TOP)/extmod/multiversal.mk
|
||||
$(eval $(call multiversal_module,mkapitest,variants/coverage/mkapi_test.yaml))
|
||||
|
|
|
|||
5
tools/add_release_assets.sh
Executable file
5
tools/add_release_assets.sh
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
|
||||
tea login add --url "$FORGE_SERVER_URL"
|
||||
|
||||
tea release asset create "${TAG}" dist/*
|
||||
Loading…
Reference in a new issue