Skip to content

Commit

Permalink
Merge pull request #851 from processing/main
Browse files Browse the repository at this point in the history
Update core-maven
  • Loading branch information
Stefterv authored Nov 11, 2024
2 parents f67b34d + 00ce121 commit 9ac49c9
Show file tree
Hide file tree
Showing 15 changed files with 1,986 additions and 123 deletions.
1,389 changes: 1,389 additions & 0 deletions .all-contributorsrc

Large diffs are not rendered by default.

42 changes: 42 additions & 0 deletions .github/ARM32.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Processing 32-bit Linux

For the Raspberry Pi 3 and older we'd need to create an 32-bit arm version of
processing.

Github Actions do not support creating 32 bit runners so we need to host one
ourselves.

## Instructions

### Gathering your Tools

You will need:

- A Raspberry Pi
- A micro SD card
- An SD card reader
- A computer

### Flashing the SD Card
1. Install and open [**Raspberry Pi Imager**](https://www.raspberrypi.com/software/) on your computer
2. In **Raspberry Pi Imager**:
- Select your Raspberry Pi model
- Select "Raspberry PI OS lite (32bit)" as the OS (you may need to look into the sub-menus)
- Select your SD card
- Click NEXT
3. Edit the OS settings:
- Set a hostname (e.g. `processing.local`)
- Set a username and password
- Go to the SERVICES tab and enable SSH with password authentication
- Click SAVE and Apply the OS customisation settings

### Configuring the Raspberry Pi
1. Take the written SD card and put it into the Raspberry PI
2. Power it up and wait for it to boot
3. SSH into the Raspberry Pi using the hostname, username, and password you set earlier
4. Follow Github's [instructions on how to set up a self-hosted runner](https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners). _Note: In the `./config.sh` setup step, you will be prompted to enter a name and other settings. Use default settings by pressing ENTER for each prompt._
5. Verify that the new runner appears in the list of runners on GitHub.
6. Quit the the runner in the terminal (we will set it up to run automatically on boot).
7. Use Github [instructions to setup the runner as a services](https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/configuring-the-self-hosted-runner-application-as-a-service) so it runs on boot.

Done.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
blank_issues_enabled: false
blank_issues_enabled: true
contact_links:
- name: 🌐 Processing Website Issues
url: https://github.com/processing/processing-website/issues
Expand Down
131 changes: 49 additions & 82 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
name: Build
on: [push]
name: Pre-releases
on:
push:
paths-ignore:
- '**/*.md'
- '.all-contributorsrc'

jobs:
test:
runs-on: ubuntu-latest
name: Run Tests
steps:
- name: Checkout
- name: Checkout Repository
uses: actions/checkout@v4
- name: Update apt
run: yes | sudo apt-get update
- name: Install rsync
run: yes | sudo apt-get install rsync
- name: Install Java
uses: actions/setup-java@v4
with:
Expand All @@ -21,89 +21,56 @@ jobs:
- name: Build
run: >
cd build;
ant clean;
ant build
- name: Test
run: >
cd build;
ant test
linux:
runs-on: ubuntu-latest
name: Build Linux
needs: [test]
ant -noinput build test;
build:
name: Create Pre-release for ${{ matrix.os_prefix }} (${{ matrix.arch }})
needs: test
runs-on: ${{ matrix.os }}
permissions:
contents: write
strategy:
matrix:
include:
# compiling for arm32 needs a self-hosted runner on Raspi OS (32-bit)
- os: self-hosted
os_prefix: linux
arch: arm
- os: ubuntu-latest
os_prefix: linux
arch: x64
- os: windows-latest
os_prefix: windows
arch: x64
- os: macos-latest
os_prefix: macos
arch: x64
- os: macos-latest
os_prefix: macos
arch: aarch64
- os: macos-latest
os_prefix: linux
arch: aarch64
steps:
- name: Checkout
- name: Checkout Repository
uses: actions/checkout@v4
- name: Update apt
run: yes | sudo apt-get update
- name: Install rsync
run: yes | sudo apt-get install rsync
- name: Install Java
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
architecture: x64
- name: Build linux
run: >
cd build;
ant clean;
ant build
- name: Add artifact
uses: actions/upload-artifact@v3
if: ${{ github.ref == 'ref/head/main' }}
with:
name: linux
path: ./build/linux/work
mac:
runs-on: macos-latest
name: Build Mac
needs: [test]
steps:
- name: Checkout
- name: Checkout Examples Repository
uses: actions/checkout@v4
- name: Install brew
run: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- name: Install rsync
run: brew install rsync
- name: Install Java
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
architecture: x64
- name: Build mac
run: >
cd build;
ant clean;
ant build
- name: Add artifact
uses: actions/upload-artifact@v3
if: ${{ github.ref == 'ref/head/main' }}
with:
name: macos
path: ./build/macos/work
windows:
runs-on: windows-latest
name: Build Windows
needs: [test]
steps:
- name: Checkout
uses: actions/checkout@v4
repository: processing/processing-examples
path: processing-examples
- name: Install Java
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
architecture: x64
- name: Build
run: >
cd build;
ant clean;
ant build
architecture: ${{ matrix.arch }}
- name: Setup Ant
uses: cedx/setup-ant@v3
- name: Build Release
run: ant -noinput -buildfile build/build.xml ${{ matrix.os_prefix }}-dist -Dversion="${{ github.sha }}"
- name: Add artifact
uses: actions/upload-artifact@v3
if: ${{ github.ref == 'ref/head/main' }}
uses: actions/upload-artifact@v4
with:
name: windows
path: ./build/windows/work
name: processing-${{github.sha}}${{ matrix.os_prefix }}-${{ matrix.arch }}
path: ./build/${{ matrix.os_prefix }}/processing-${{github.sha}}-${{ matrix.os_prefix}}-*
retention-days: 1
64 changes: 64 additions & 0 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Pull Requests
on:
pull_request:
paths-ignore:
- '**/*.md'
branches:
- main

jobs:
build:
name: Create Pull Request Build for ${{ matrix.os_prefix }} (${{ matrix.arch }})
runs-on: ${{ matrix.os }}
permissions:
pull-requests: write
contents: read
strategy:
matrix:
include:
# compiling for arm32 needs a self-hosted runner on Raspi OS (32-bit)
- os: self-hosted
os_prefix: linux
arch: arm
- os: ubuntu-latest
os_prefix: linux
arch: x64
- os: windows-latest
os_prefix: windows
arch: x64
- os: macos-latest
os_prefix: macos
arch: x64
- os: macos-latest
os_prefix: macos
arch: aarch64
- os: macos-latest
os_prefix: linux
arch: aarch64
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Install Java
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
architecture: ${{ matrix.arch }}
- name: Setup Ant
uses: cedx/setup-ant@v3
- name: Build Release
run: ant -noinput -buildfile build/build.xml ${{ matrix.os_prefix }}-dist -Dversion="${{ github.sha }}"
- name: Add artifact
uses: actions/upload-artifact@v3
id: upload
with:
name: processing-${{github.sha}}${{ matrix.os_prefix }}-${{ matrix.arch }}
path: ./build/${{ matrix.os_prefix }}/processing-${{github.sha}}-${{ matrix.os_prefix}}-*
retention-days: 5
# TODO: Merge into one comment and fix the link
# - uses: mshick/add-pr-comment@v2
# with:
# message-id: "build-artifact ${{ matrix.os_prefix }} ${{ matrix.arch }}"
# message: |
# Build artifacts for ${{ matrix.os_prefix }} (${{ matrix.arch }}) have been created.
# Download the artifacts [here](${{ steps.upload.outputs.artifact-id }}).
83 changes: 83 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: Releases
on:
release:
types: [published]
push:
tags:
- processing-*

jobs:
version:
runs-on: ubuntu-latest
outputs:
build_number: ${{ steps.tag_info.outputs.build_number }}
version: ${{ steps.tag_info.outputs.version }}
steps:
- name: Extract version and build number
id: tag_info
shell: bash
run: |
TAG_NAME="${GITHUB_REF#refs/tags/}"
BUILD_NUMBER=$(echo "$TAG_NAME" | cut -d'-' -f2)
VERSION=$(echo "$TAG_NAME" | cut -d'-' -f3)
# Set outputs for use in later jobs or steps
echo "build_number=$BUILD_NUMBER" >> $GITHUB_OUTPUT
echo "version=$VERSION" >> $GITHUB_OUTPUT
build:
name: Publish Release for ${{ matrix.os_prefix }} (${{ matrix.arch }})
runs-on: ${{ matrix.os }}
needs: version
permissions:
contents: write
strategy:
matrix:
include:
# compiling for arm32 needs a self-hosted runner on Raspi OS (32-bit)
- os: self-hosted
os_prefix: linux
arch: arm
- os: ubuntu-latest
os_prefix: linux
arch: x64
- os: windows-latest
os_prefix: windows
arch: x64
- os: macos-latest
os_prefix: macos
arch: x64
- os: macos-latest
os_prefix: macos
arch: aarch64
- os: macos-latest
os_prefix: linux
arch: aarch64
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Install Java
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
architecture: ${{ matrix.arch }}
- name: Setup Ant
uses: cedx/setup-ant@v3
- name: Install Certificates for Code Signing
if: ${{ matrix.os_prefix == 'macos' }}
uses: apple-actions/import-codesign-certs@v3
with:
p12-file-base64: ${{ secrets.CERTIFICATES_P12 }}
p12-password: ${{ secrets.CERTIFICATES_P12_PASSWORD }}
- name: Build Release
run: ant -noinput -buildfile build/build.xml ${{ matrix.os_prefix }}-dist -Dversion="${{ needs.version.outputs.version }}"
env:
PROCESSING_APP_PASSWORD: ${{ secrets.PROCESSING_APP_PASSWORD }}
PROCESSING_APPLE_ID: ${{ secrets.PROCESSING_APPLE_ID }}
PROCESSING_TEAM_ID: ${{ secrets.PROCESSING_TEAM_ID }}
- name: Upload binaries to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ./build/${{ matrix.os_prefix }}/processing-${{ needs.version.outputs.version }}-${{ matrix.os_prefix}}-*
file_glob: true
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,10 @@ bin-test
.project
.vscode/

# Processing examples
processing-examples

# Maven ignores
.gradle
core/build/
gradlew
Expand Down
4 changes: 2 additions & 2 deletions CODE-OF-CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ Processing is a flexible software sketchbook and a language for learning how to

We make room for people to get involved in the project at any point they wish. This means that we:

* Welcome contributors at any stage of their programming journey, from newcomers to professionals;
* Welcome contributors at any stage of their journey, from newcomers to professionals;
* Do not assume knowledge or imply there are things that somebody should know;
* Understand that people are the experts of their own experiences, and bring a variety of valid perspectives to the development of open source projects;
* Know that contribution is not just limited to code, and can also include working on documentation, filing issues and bug reports, and other important forms of input;
* Work to offer help and guidance when we are able to do so.

## Our Standards

All developers who contribute to the Processing project agree to abide by the following code of conduct.
All contributors to the Processing project agree to abide by the following code of conduct.

### Respect other people

Expand Down
Loading

0 comments on commit 9ac49c9

Please sign in to comment.