From a9538347248960b8f90a97132dfc8cce2301fb8c Mon Sep 17 00:00:00 2001 From: Jordan Bancino Date: Fri, 12 Jan 2024 15:13:50 -0500 Subject: [PATCH 01/12] Add test compile workflow. --- .gitea/workflows/compile.yaml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .gitea/workflows/compile.yaml diff --git a/.gitea/workflows/compile.yaml b/.gitea/workflows/compile.yaml new file mode 100644 index 0000000..4d83115 --- /dev/null +++ b/.gitea/workflows/compile.yaml @@ -0,0 +1,19 @@ +name: Compile Cytoplasm +run-name: Compile Cytoplasm on ${{ gitea.actor }} +on: [push] + +jobs: + Compile-Cytoplasm: + # TODO: Add more architectures + runs-on: alpine-v3.19-x86_64 + steps: + - name: Check out repository. + uses: actions/checkout@v3 + - name: Execute configuration script. + # TODO: enable TLS after testing. + # It is broken on Alpine; I need to fix it and CI yelling at + # me will force me to fix it. But for now I just want to test + # CI and make sure it works properly. + run: ./configure --disable-tls + - name: Execute 'make'. + run: make -- 2.45.2 From 605cce881a09f98ffe4655daf3f2d454f7a47934 Mon Sep 17 00:00:00 2001 From: Jordan Bancino Date: Fri, 12 Jan 2024 15:39:14 -0500 Subject: [PATCH 02/12] Add x86 runner. --- .gitea/workflows/compile.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/compile.yaml b/.gitea/workflows/compile.yaml index 4d83115..21a5bb8 100644 --- a/.gitea/workflows/compile.yaml +++ b/.gitea/workflows/compile.yaml @@ -5,7 +5,7 @@ on: [push] jobs: Compile-Cytoplasm: # TODO: Add more architectures - runs-on: alpine-v3.19-x86_64 + runs-on: [alpine-v3.19-x86, alpine-v3.19-x86_64] steps: - name: Check out repository. uses: actions/checkout@v3 -- 2.45.2 From 4f0cf2f670e4e99fe22743e09ddaef15cd5d68ea Mon Sep 17 00:00:00 2001 From: Jordan Bancino Date: Fri, 12 Jan 2024 15:50:19 -0500 Subject: [PATCH 03/12] Update workflow. --- .gitea/workflows/compile.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/compile.yaml b/.gitea/workflows/compile.yaml index 21a5bb8..291f3b2 100644 --- a/.gitea/workflows/compile.yaml +++ b/.gitea/workflows/compile.yaml @@ -5,7 +5,7 @@ on: [push] jobs: Compile-Cytoplasm: # TODO: Add more architectures - runs-on: [alpine-v3.19-x86, alpine-v3.19-x86_64] + runs-on: alpine-v3.19 steps: - name: Check out repository. uses: actions/checkout@v3 -- 2.45.2 From 6a6d379622029c1b0455d56e586885857e9c2ebd Mon Sep 17 00:00:00 2001 From: Jordan Bancino Date: Fri, 12 Jan 2024 15:54:55 -0500 Subject: [PATCH 04/12] Update workflow. --- .gitea/workflows/compile.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/compile.yaml b/.gitea/workflows/compile.yaml index 291f3b2..e33cd24 100644 --- a/.gitea/workflows/compile.yaml +++ b/.gitea/workflows/compile.yaml @@ -4,8 +4,12 @@ on: [push] jobs: Compile-Cytoplasm: + strategy: + matrix: + os: [alpine-v3.19] + arch: [x86, x86_64] # TODO: Add more architectures - runs-on: alpine-v3.19 + runs-on: ["${{ matrix.os }}", "${{ matrix.arch }}"] steps: - name: Check out repository. uses: actions/checkout@v3 -- 2.45.2 From 83a02392f83c697341f061610447cd3e12bfdb76 Mon Sep 17 00:00:00 2001 From: Jordan Bancino Date: Fri, 12 Jan 2024 15:59:51 -0500 Subject: [PATCH 05/12] Update workflow. --- .gitea/workflows/compile.yaml | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/.gitea/workflows/compile.yaml b/.gitea/workflows/compile.yaml index e33cd24..98c5d30 100644 --- a/.gitea/workflows/compile.yaml +++ b/.gitea/workflows/compile.yaml @@ -3,21 +3,17 @@ run-name: Compile Cytoplasm on ${{ gitea.actor }} on: [push] jobs: - Compile-Cytoplasm: + "Compile Cytoplasm": strategy: matrix: + # TODO: Add more operating systems and architectures os: [alpine-v3.19] arch: [x86, x86_64] - # TODO: Add more architectures runs-on: ["${{ matrix.os }}", "${{ matrix.arch }}"] steps: - - name: Check out repository. + - name: Check out repository uses: actions/checkout@v3 - - name: Execute configuration script. - # TODO: enable TLS after testing. - # It is broken on Alpine; I need to fix it and CI yelling at - # me will force me to fix it. But for now I just want to test - # CI and make sure it works properly. - run: ./configure --disable-tls - - name: Execute 'make'. + - name: Configure Cytoplasm + run: ./configure + - name: Build Cytoplasm run: make -- 2.45.2 From 9583e48aa0e78cef6031acb1dabd3e2b71e92941 Mon Sep 17 00:00:00 2001 From: Jordan Bancino Date: Fri, 12 Jan 2024 17:52:41 -0500 Subject: [PATCH 06/12] Add Debian x86 and x86_64 runners. --- .gitea/workflows/compile.yaml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/compile.yaml b/.gitea/workflows/compile.yaml index 98c5d30..0bf8542 100644 --- a/.gitea/workflows/compile.yaml +++ b/.gitea/workflows/compile.yaml @@ -7,7 +7,15 @@ jobs: strategy: matrix: # TODO: Add more operating systems and architectures - os: [alpine-v3.19] + # + # Required packages for Alpine: git go nodejs make gcc openssl-dev + # Required packages for Debian: git golang nodejs make gcc libssl-dev + # + # Then clone https://git.telodendria.io/Telodendria/act_runner, + # do a go build, ./act_runner register, then ./act_runner daemon. + # + ## For Linux distros, set the tags: linux, -, + os: [alpine-v3.19, debian-v12.4] arch: [x86, x86_64] runs-on: ["${{ matrix.os }}", "${{ matrix.arch }}"] steps: -- 2.45.2 From 7830b91603e6e8be1b4b49a26dee1e803a18da89 Mon Sep 17 00:00:00 2001 From: Jordan Bancino Date: Fri, 12 Jan 2024 17:58:13 -0500 Subject: [PATCH 07/12] Update workflow. --- .gitea/workflows/compile.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/compile.yaml b/.gitea/workflows/compile.yaml index 0bf8542..b9e9548 100644 --- a/.gitea/workflows/compile.yaml +++ b/.gitea/workflows/compile.yaml @@ -15,7 +15,7 @@ jobs: # do a go build, ./act_runner register, then ./act_runner daemon. # ## For Linux distros, set the tags: linux, -, - os: [alpine-v3.19, debian-v12.4] + os: [debian-v12.4, alpine-v3.19] arch: [x86, x86_64] runs-on: ["${{ matrix.os }}", "${{ matrix.arch }}"] steps: -- 2.45.2 From b39d2e4a365cc4ab49eaab37dc034e71ecd14dbb Mon Sep 17 00:00:00 2001 From: Jordan Bancino Date: Fri, 12 Jan 2024 18:06:41 -0500 Subject: [PATCH 08/12] Don't build static binaries by default. OpenSSL isn't build statically on most Linux distributions, so --static only makes sense with --disable-tls or a custom build of OpenSSL. I haven't tested LibreSSL. --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index f8b0554..a9f682b 100755 --- a/configure +++ b/configure @@ -18,7 +18,7 @@ LIBS="-lm -pthread" # Set default args for all platforms -SCRIPT_ARGS="--cc=cc --prefix=/usr/local --enable-ld-extra --lib-name=Cytoplasm --lib-version=0.4.1 --static $@" +SCRIPT_ARGS="--cc=cc --prefix=/usr/local --enable-ld-extra --lib-name=Cytoplasm --lib-version=0.4.1 $@" # Set platform specific args case "$(uname)" in -- 2.45.2 From e81d7e191120b3bbb42d5cec2953ec4c10052937 Mon Sep 17 00:00:00 2001 From: Jordan Bancino Date: Fri, 12 Jan 2024 19:59:11 -0500 Subject: [PATCH 09/12] Update workflow. --- .gitea/workflows/compile.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/compile.yaml b/.gitea/workflows/compile.yaml index b9e9548..11ccd17 100644 --- a/.gitea/workflows/compile.yaml +++ b/.gitea/workflows/compile.yaml @@ -8,14 +8,17 @@ jobs: matrix: # TODO: Add more operating systems and architectures # - # Required packages for Alpine: git go nodejs make gcc openssl-dev + # Required packages for Alpine: git go nodejs make gcc musl-dev openssl-dev # Required packages for Debian: git golang nodejs make gcc libssl-dev + # Required packages for OpenBSD: git go node + # (Note: OpenBSD does not have a 32-bit runner because it doesn't do well in QEMU.) # # Then clone https://git.telodendria.io/Telodendria/act_runner, # do a go build, ./act_runner register, then ./act_runner daemon. # - ## For Linux distros, set the tags: linux, -, - os: [debian-v12.4, alpine-v3.19] + # For Linux distros, set the tags: linux, -, + # For BSDs, set the tags: bsd, -, + os: [debian-v12.4, alpine-v3.19, openbsd-v7.4] arch: [x86, x86_64] runs-on: ["${{ matrix.os }}", "${{ matrix.arch }}"] steps: -- 2.45.2 From b7e8980a171a4c20c665ab673a14151208658484 Mon Sep 17 00:00:00 2001 From: Jordan Bancino Date: Fri, 12 Jan 2024 20:07:42 -0500 Subject: [PATCH 10/12] Update workflow. --- .gitea/workflows/compile.yaml | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/compile.yaml b/.gitea/workflows/compile.yaml index 11ccd17..d41f03e 100644 --- a/.gitea/workflows/compile.yaml +++ b/.gitea/workflows/compile.yaml @@ -6,20 +6,30 @@ jobs: "Compile Cytoplasm": strategy: matrix: - # TODO: Add more operating systems and architectures + # TODO: Add more operating systems and architectures. # # Required packages for Alpine: git go nodejs make gcc musl-dev openssl-dev # Required packages for Debian: git golang nodejs make gcc libssl-dev # Required packages for OpenBSD: git go node - # (Note: OpenBSD does not have a 32-bit runner because it doesn't do well in QEMU.) # - # Then clone https://git.telodendria.io/Telodendria/act_runner, - # do a go build, ./act_runner register, then ./act_runner daemon. + # Note that Git, Go, and Node are only required on runners; they are + # not generally required for compiling cytoplasm. + # + # To set up a runner, install the packages, then clone + # https://git.telodendria.io/Telodendria/act_runner, do a go build, + # execute ./act_runner register, then execute ./act_runner daemon. # # For Linux distros, set the tags: linux, -, # For BSDs, set the tags: bsd, -, os: [debian-v12.4, alpine-v3.19, openbsd-v7.4] arch: [x86, x86_64] + exclude: + # 32-bit OpenBSD does not behave well in QEMU. Even when using + # QEMU to emulate i386, it utilizes 100% of its CPU core and is + # still extremely sluggish. Thus, we don't have a working 32-bit + # OpenBSD runner, so exclude it from the matrix configuration. + - os: openbsd-v7.4 + arch: x86 runs-on: ["${{ matrix.os }}", "${{ matrix.arch }}"] steps: - name: Check out repository -- 2.45.2 From abdc5ba87e960b8fc2a5cc95fc5a994f1e6eb0a1 Mon Sep 17 00:00:00 2001 From: Jordan Bancino Date: Fri, 12 Jan 2024 20:33:51 -0500 Subject: [PATCH 11/12] Add FreeBSD 14 runner. --- .gitea/workflows/compile.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/compile.yaml b/.gitea/workflows/compile.yaml index d41f03e..4273963 100644 --- a/.gitea/workflows/compile.yaml +++ b/.gitea/workflows/compile.yaml @@ -11,9 +11,11 @@ jobs: # Required packages for Alpine: git go nodejs make gcc musl-dev openssl-dev # Required packages for Debian: git golang nodejs make gcc libssl-dev # Required packages for OpenBSD: git go node + # Required packages for FreeBSD: git go node # # Note that Git, Go, and Node are only required on runners; they are - # not generally required for compiling cytoplasm. + # not generally required for compiling cytoplasm. Conveniently, this means + # that on the BSDs, no additional packages are required to use Cytoplasm! # # To set up a runner, install the packages, then clone # https://git.telodendria.io/Telodendria/act_runner, do a go build, @@ -21,7 +23,7 @@ jobs: # # For Linux distros, set the tags: linux, -, # For BSDs, set the tags: bsd, -, - os: [debian-v12.4, alpine-v3.19, openbsd-v7.4] + os: [debian-v12.4, alpine-v3.19, openbsd-v7.4, freebsd-v14.0] arch: [x86, x86_64] exclude: # 32-bit OpenBSD does not behave well in QEMU. Even when using -- 2.45.2 From 4d88d06fd592619b10d3c29729dab876b9cc7e95 Mon Sep 17 00:00:00 2001 From: Jordan Bancino Date: Sat, 13 Jan 2024 10:06:22 -0500 Subject: [PATCH 12/12] Add NetBSD 9.3 for CI. Also removed TODO comments. This is all the runners I plan on adding for now. --- .gitea/workflows/compile.yaml | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/.gitea/workflows/compile.yaml b/.gitea/workflows/compile.yaml index 4273963..1185758 100644 --- a/.gitea/workflows/compile.yaml +++ b/.gitea/workflows/compile.yaml @@ -6,24 +6,7 @@ jobs: "Compile Cytoplasm": strategy: matrix: - # TODO: Add more operating systems and architectures. - # - # Required packages for Alpine: git go nodejs make gcc musl-dev openssl-dev - # Required packages for Debian: git golang nodejs make gcc libssl-dev - # Required packages for OpenBSD: git go node - # Required packages for FreeBSD: git go node - # - # Note that Git, Go, and Node are only required on runners; they are - # not generally required for compiling cytoplasm. Conveniently, this means - # that on the BSDs, no additional packages are required to use Cytoplasm! - # - # To set up a runner, install the packages, then clone - # https://git.telodendria.io/Telodendria/act_runner, do a go build, - # execute ./act_runner register, then execute ./act_runner daemon. - # - # For Linux distros, set the tags: linux, -, - # For BSDs, set the tags: bsd, -, - os: [debian-v12.4, alpine-v3.19, openbsd-v7.4, freebsd-v14.0] + os: [debian-v12.4, alpine-v3.19, openbsd-v7.4, freebsd-v14.0, netbsd-v9.3] arch: [x86, x86_64] exclude: # 32-bit OpenBSD does not behave well in QEMU. Even when using -- 2.45.2