-
Notifications
You must be signed in to change notification settings - Fork 210
Add a GitHub Actions build workflow #19
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
Add a GitHub Actions build workflow #19
Conversation
Thanks for the suggestion. I am a newbie to both Git and GitHub, and I'm not sure that I'm ready for sophistications like this yet. Also, there is currently a Release Candidate out for testing, so non-urgent changes are frozen (and I'm busy on an entirely different project). |
No worries, take your time, and merge or close this when you're comfortable with it. I know you're new to GitHub, that's why I wanted to show what it's capable of. As for the release, if you decide to merge this then I suppose you shouldn't include the |
I have finally got round to merging this and will now research what it can do (including #10). |
Ok, let me know if you need any help. Testing with Alpine will require using a container, which will be a bit more difficult than the simple workflow I made here. I recommend testing workflow changes on another branch, as it may require several attempts in order to make them work. |
Thank you. The first thing I want to do is to run the workflow manually,
which is clearly something needed for testing. Looks like I have to add the
workflow-despatch event to the YAML file, and then there will a "run"
button for the action. Is that right? I have to go out now for several
hours, so no hurry to respond.
…On Wed, 20 Apr 2022 at 09:03, Lucas Trzesniewski ***@***.***> wrote:
Ok, let me know if you need any help. Testing with Alpine will require
using a container, which will be a bit more difficult than the simple
workflow I made here.
I recommend testing workflow changes on another branch, as it may require
several attempts in order to make them work.
—
Reply to this email directly, view it on GitHub
<#19 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AG4QUAEWCRUDOLIXH7YETBDVF6235ANCNFSM5EKJL5YQ>
.
You are receiving this because you modified the open/close state.Message
ID: ***@***.***>
|
The workflow is configured to run automatically:
This means that, normally, you shouldn't need to run a workflow manually. If you want to test a change, all you need to do is push it. That's why I recommended testing workflow changes on a different branch: you may need to push several small commits, and squash them to a single commit on the master branch when you're satisfied (this will keep a clean history on the master branch). But if you want to run a workflow a second time on the same commit, you can already do that without any change. Open the run, and you'll see a "Re-run all jobs" button on the right: You may also re-run a single job: (there's currently a single job in the workflow, but you may want to add a second one for Alpine) |
Thanks for your help. I have been experimenting in a branch called ymltest.
After 6 attempts I have got it to configure and compile PCRE2 in an Alpine
container. The main tests run OK, but the Grep test fails - presumably this
is expected because of the issue raised in #10, though I thought this had
been fixed. (Another point is that I used libc but in #10 it says Alpine
uses musl. Perhaps I should change to use that?) I have not merged the
ymltest branch, pending more work. It would be useful somehow to see the
output from the RunGrepTest script.
|
Yes, I think the main goal of using Alpine is to test PCRE2 with musl. @carenas suggested installing
The workflow will display any output of the specified commands. I used |
Alpine's failure is because of the reordering of the callout output and corresponds to the following log (extracted from RunGrepTest.log) output:
|
Inserting fflush *before* as well as after a forked callout has fixed it!
Yay.
…On Fri, 22 Apr 2022 at 09:01, Philip Hazel ***@***.***> wrote:
Yes, indeed. I changed the .yml file to run each test separately, and got
the same output. I have just tried inserting a call to fflush() after a
forked callout in pcre2grep in the hope that this might "standardize" the
ordering of the output. It has changed the order on my box (Arch linux) and
the plain Ubuntu test on GitHub (which still passes), but sadly the Alpine
test still fails (though the output is different). Continuing to think....
On Thu, 21 Apr 2022 at 09:23, Carlo Marcelo Arenas Belón <
***@***.***> wrote:
> Alpine's failure is because of the reordering of the callout output and
> corresponds to the following log (extracted from RunGrepTest.log) output:
>
> Testing pcre2grep script callouts
> --- ./testdata/grepoutputC
> +++ testtrygrep
> @@ -1,22 +1,22 @@
> Arg1: [T] [he ] [ ] Arg2: |T| () () (0)
> +The quick brown
> Arg1: [T] [his] [s] Arg2: |T| () () (0)
> Arg1: [T] [his] [s] Arg2: |T| () () (0)
> Arg1: [T] [he ] [ ] Arg2: |T| () () (0)
> Arg1: [T] [he ] [ ] Arg2: |T| () () (0)
> Arg1: [T] [he ] [ ] Arg2: |T| () () (0)
> -The quick brown
> This time it jumps and jumps and jumps.
> This line contains \E and (regex) *meta* [characters].
> The word is cat in this line
> The caterpillar sat on the mat
> The snowcat is not an animal
> Arg1: [qu] [qu]
> +The quick brown
> Arg1: [ t] [ t]
> Arg1: [ l] [ l]
> Arg1: [wo] [wo]
> Arg1: [ca] [ca]
> Arg1: [sn] [sn]
> -The quick brown
> This time it jumps and jumps and jumps.
> This line contains \E and (regex) *meta* [characters].
> The word is cat in this line
> FAIL RunGrepTest (exit status: 1)
>
> —
> Reply to this email directly, view it on GitHub
> <#19 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AG4QUAHQZMYCHV4QERJ3VKDVGEGBHANCNFSM5EKJL5YQ>
> .
> You are receiving this because you modified the open/close state.Message
> ID: ***@***.***>
>
|
Yes, indeed. I changed the .yml file to run each test separately, and got
the same output. I have just tried inserting a call to fflush() after a
forked callout in pcre2grep in the hope that this might "standardize" the
ordering of the output. It has changed the order on my box (Arch linux) and
the plain Ubuntu test on GitHub (which still passes), but sadly the Alpine
test still fails (though the output is different). Continuing to think....
…On Thu, 21 Apr 2022 at 09:23, Carlo Marcelo Arenas Belón < ***@***.***> wrote:
Alpine's failure is because of the reordering of the callout output and
corresponds to the following log (extracted from RunGrepTest.log) output:
Testing pcre2grep script callouts
--- ./testdata/grepoutputC
+++ testtrygrep
@@ -1,22 +1,22 @@
Arg1: [T] [he ] [ ] Arg2: |T| () () (0)
+The quick brown
Arg1: [T] [his] [s] Arg2: |T| () () (0)
Arg1: [T] [his] [s] Arg2: |T| () () (0)
Arg1: [T] [he ] [ ] Arg2: |T| () () (0)
Arg1: [T] [he ] [ ] Arg2: |T| () () (0)
Arg1: [T] [he ] [ ] Arg2: |T| () () (0)
-The quick brown
This time it jumps and jumps and jumps.
This line contains \E and (regex) *meta* [characters].
The word is cat in this line
The caterpillar sat on the mat
The snowcat is not an animal
Arg1: [qu] [qu]
+The quick brown
Arg1: [ t] [ t]
Arg1: [ l] [ l]
Arg1: [wo] [wo]
Arg1: [ca] [ca]
Arg1: [sn] [sn]
-The quick brown
This time it jumps and jumps and jumps.
This line contains \E and (regex) *meta* [characters].
The word is cat in this line
FAIL RunGrepTest (exit status: 1)
—
Reply to this email directly, view it on GitHub
<#19 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AG4QUAHQZMYCHV4QERJ3VKDVGEGBHANCNFSM5EKJL5YQ>
.
You are receiving this because you modified the open/close state.Message
ID: ***@***.***>
|
Let's inaugurate the pull requests 🙂
Here's a suggestion: you may use GitHub Actions for continuous integration. If you merge this, each time you push or receive a pull request, GitHub will build and test the code, then report success or failure with a ✔️ or ❌ sign on the commit or PR.
I wrote a very basic workflow (see the YAML file, it is pretty self-explanatory), but you may expand this to include more config options or combinations of options.
You can also see an example of a run in my fork, or consult the documentation.