Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

gh-actions: add workflow for release tests #174

Closed
wants to merge 3 commits into from

Conversation

miri64
Copy link
Member

@miri64 miri64 commented Jul 17, 2020

This provides a Github Actions Workflow to run the release tests both weekly currently configured for Sat 3:00 and on triggered events. For the triggered runs one can either use the REST API hook or, once this PR is merged into master, via the "Run workflow" mask in the Actions tab.

As input parameters the riot_version and the docker_version (for the riotbuild image) can be chosen. riot_version can be any git reference in the RIOT-OS/RIOT repo, including commit SHA1s, branches or tags. If riot_version is a release candidate tag (so name format like 2020.07-RC2), the framework will recognize this and will also manipulate the test tracking issue for that RC (see #173). The idea is, that once this PR gets merged a webhook the workflow is run once that tag is created in RIOT-OS/RIOT.

For the weekly cron job, the release tests are always run against the current master of RIOT-OS/RIOT.

The current deployment can be checked here.

Dependencies

This PR includes #164 (and all its dependencies), #173, and #178.

@miri64
Copy link
Member Author

miri64 commented Jul 27, 2020

Looking at RIOT-OS/RIOT#14587 it might make sense to move this to RIOT-OS/RIOT as well. This way, reacting to tag creation would be much more easier.

@miri64
Copy link
Member Author

miri64 commented Jul 27, 2020

With having it here, some webhook would be required to start the job on tag creation over at RIOT-OS/RIOT. By moving it over it would be as easy as

on:
  push:
    tags:
      - '[0-9][0-9][0-9][0-9].[0-9][0-9]-RC[0-9]*'
      - '[0-9][0-9][0-9][0-9].[0-9][0-9]'

@fjmolinas
Copy link
Contributor

I think although it might be easier it mixes some some concerns, from what I see here it is something github wants to work on. For now it would seem to me that it would be somehow cleaner to have just a ymal setting the trigger in RIOT-OS/RIOT maybe something like webhook-trigger? What do you think?

@miri64
Copy link
Member Author

miri64 commented Jul 27, 2020

I think although it might be easier it mixes some some concerns, from what I see here it is something github wants to work on. For now it would seem to me that it would be somehow cleaner to have just a ymal setting the trigger in RIOT-OS/RIOT maybe something like webhook-trigger? What do you think?

So you rather want to create two actions, one in RIOT-OS/RIOT and RIOT-OS/Release-Specs? IMHO this could potentially add some managing overhead: Two yamls equal two yamls to be edited, PR'd, and reviewed in case anything changes in our release procedures.

@fjmolinas
Copy link
Contributor

So you rather want to create two actions, one in RIOT-OS/RIOT and RIOT-OS/Release-Specs? IMHO this could potentially add some managing overhead: Two yamls equal two yamls to be edited, PR'd, and reviewed in case anything changes in our release procedures.

I cant imagine the webhook requiring much editing. On the other side of the argument we would be adding more code into RIOT-OS/RIOT and that yaml file goes through a more costly review procedure (even if skipping ci-builds you have to wait for it to go through the queue) than if the bulk of the configuration is kept in this repo. That being said, I don't have a strong opinion on this so I would no insist on any approach.

@miri64
Copy link
Member Author

miri64 commented Jul 27, 2020

[…] if the bulk of the configuration is kept in this repo.

Just to be clear: I am just talking about moving the yaml file to the RIOT repo. The tests and all will of course remain here. As the workflow checks out both repos already

- name: Checkout Release-Specs
uses: actions/checkout@v2
with:
path: Release-Specs
- name: Checkout RIOT
uses: actions/checkout@v2
with:
repository: RIOT-OS/RIOT
path: RIOT
fetch-depth: 1
ref: ${{ github.event.inputs.riot_version }}

and none of the hooks are currently repo-dependent

on:
schedule:
- cron: '0 3 * * 6'
workflow_dispatch:
inputs:
riot_version:
description: 'RIOT version to checkout'
required: true
default: 'master'
docker_version:
description: 'riot/riotbuild docker image version'
required: true
default: 'latest'

the move over there wouldn't even be that hard.

@miri64
Copy link
Member Author

miri64 commented Jul 27, 2020

In the end: the system under tests with this workflow is RIOT, not the release specs ;-).

@miri64
Copy link
Member Author

miri64 commented Jul 28, 2020

the move over there wouldn't even be that hard.

See RIOT-OS/RIOT#14646

@fjmolinas
Copy link
Contributor

Can you rebase this one to have a better view of the PR?

@miri64 miri64 force-pushed the gh-actions/enh/weekly-run branch from d7d7f66 to af33c06 Compare July 29, 2020 12:33
@miri64
Copy link
Member Author

miri64 commented Jul 29, 2020

Can you rebase this one to have a better view of the PR?

Rebased to current master and out-standing dependencies (#173 and #178). However, now that I ported it to RIOT-OS/RIOT#14646, I think I prefer it that way.

@miri64
Copy link
Member Author

miri64 commented Jul 29, 2020

77d477c will go into its own PR once confirmed it solves the problems with native. Explanation will follow there.

@miri64 miri64 force-pushed the gh-actions/enh/weekly-run branch 5 times, most recently from c6fa07a to 97aa394 Compare July 30, 2020 18:56
@miri64
Copy link
Member Author

miri64 commented Jul 30, 2020

77d477c will go into its own PR once confirmed it solves the problems with native. Explanation will follow there.

See #180

@miri64 miri64 force-pushed the gh-actions/enh/weekly-run branch 6 times, most recently from 5d4bc83 to f557a40 Compare July 31, 2020 15:50
@miri64 miri64 force-pushed the gh-actions/enh/weekly-run branch 5 times, most recently from 7bbd0af to eb8586e Compare August 2, 2020 11:33
@miri64 miri64 added the tracking label Aug 5, 2020
@miri64 miri64 force-pushed the gh-actions/enh/weekly-run branch 2 times, most recently from fb96d78 to b45fc87 Compare August 5, 2020 08:46
@miri64 miri64 force-pushed the gh-actions/enh/weekly-run branch from b45fc87 to 9449a9b Compare August 5, 2020 21:12
@miri64
Copy link
Member Author

miri64 commented Aug 5, 2020

Rebased and included #181 for re-resting because I dunno .... 😪

@aabadie
Copy link
Contributor

aabadie commented Aug 6, 2020

However, now that I ported it to RIOT-OS/RIOT#14646, I think I prefer it that way.

So this PR becomes obsolete once RIOT-OS/RIOT#14646 is in ?

@miri64
Copy link
Member Author

miri64 commented Aug 6, 2020

However, now that I ported it to RIOT-OS/RIOT#14646, I think I prefer it that way.

So this PR becomes obsolete once RIOT-OS/RIOT#14646 is in ?

Yes. I mainly use this PR to track and test the remaining PRs required for RIOT-OS/RIOT#14646.

@miri64
Copy link
Member Author

miri64 commented Aug 6, 2020

But since #181 is the only relevant left, I think we can close this now.

@miri64 miri64 closed this Aug 6, 2020
@miri64 miri64 deleted the gh-actions/enh/weekly-run branch August 6, 2020 10:35
# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants