Commit Graph

63 Commits

Author SHA1 Message Date
Chris Evich
21c9517b5e Revert "GHA: Closed issue/PR comment-lock test"
This reverts commit f0e8e79c97.
This is intentional, it was needed for testing. See

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-08-22 14:51:24 -04:00
Chris Evich
f0e8e79c97 GHA: Closed issue/PR comment-lock test
This commit limits the blast-radius should the workflow fail
catastrophically.  It also instruments the workflow with a job-level
test-failure to trigger a notification mail.  This commit should be
reverted once the workflow is deemed functional.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-08-22 13:30:04 -04:00
Chris Evich
5477fd38a9 GHA: Add workflow to lock closed issues/PRs
Ref: https://github.com/containers/podman/discussions/19012

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-08-22 13:30:03 -04:00
renovate[bot]
7988dd82c9 [skip-ci] Update dawidd6/action-send-mail action to v3.8.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-08 12:38:30 +00:00
Chris Evich
03d7a5120c Minor: Include shasums in GHA workflow artifacts
This may be helpful in case SHA comparison is needed w/ files elsewhere.
For example, the files uploaded to a github release page.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-08-07 11:42:39 -04:00
Chris Evich
d63ac06521 Minor: Add important comment to windows GHA workflow
Ref:
https://github.com/containers/podman/pull/19418#issuecomment-1665938019

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-08-07 11:37:33 -04:00
Chris Evich
9d7fe4e90f Minor: Update/fix dry-run input descriptions
These are visible when running either job manually.  Fix the windows
workflow by including a `v` prefix to an obviously fictitious version
number.  For consistency, update the mac workflow text to match.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-08-07 11:30:32 -04:00
OpenShift Merge Robot
7a2c5422e8 Merge pull request #19418 from cevich/dry_run_actions
[CI:DOCS] GHA: Support testing build/sign workflows
2023-08-03 11:38:56 +02:00
Chris Evich
4d69f01468 GHA: Support testing build/sign workflows
Neither `release` nor `workflow_dispatch` triggers may be tested inside
a PR context.  The workflow steps always run from what's already
committed to `main`.  Rather than waiting for a release to discover
some unforeseen workflow problem, allow manual runs to optionally skip
the release upload step (by default).

Also, update the windows workflow to store an artifact of the signed
build, and migrate away from the deprecated "set-output" command.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-08-02 16:58:16 -04:00
Chris Evich
93f4cc1b51 [CI:DOCS] GHA: Use stable go for Mac/Win builds
Having hard-coded versions burried under a hidden directory is ripe for
maintenance headaches.  Use the latest 'stable' version, since this will
be "close enough" to what we test in CI.

Ref: https://github.com/containers/podman/discussions/19404

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-07-31 10:43:53 -04:00
Ashley Cui
f592c33fb8 [CI:DOCS] Build and Sign Mac Pkginstaller
Create a new GitHub Action that builds and signs the Mac pkginstaller. The action also uploads the installers to the release, and updates the shasums file.

This action is triggered on release creation, but it can also be triggered manually via a workflow dispatch.

Signed-off-by: Ashley Cui <acui@redhat.com>
2023-07-27 15:17:37 -04:00
renovate[bot]
8d24e28387 [skip-ci] Update github/issue-labeler action to v3.2
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-08 19:44:36 +00:00
Chris Evich
a7271f9dd7 GHA: Fix bad job-names & links in monitoring emails
Due to a bad file-format design, if a cirrus-cron job happened to have a
name w/ spaces, the generated e-mail text would be broken.  For example:

```
Cron build 'VM' Failed: https://cirrus-ci.com/build/Image Maintenance
5630822628196352
```

Fix this by flipping the field-order in an intermediate file, so the
build ID comes first, then the job name.  This makes it much easier for
`read` to process, since all words will be stored into the final
variable (now the job name).

Also change all variables that reference this intermediate file such
that they continue to reflect the expected field order.  Update script
tests and add a new test to confirm expected file processing and output.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-06-07 15:22:17 -04:00
renovate[bot]
fc8bd45215 [skip-ci] Update dawidd6/action-send-mail action to v3.7.2
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-25 08:12:08 +00:00
Chris Evich
d53871cf12 GHA: Use version instead of SHA for actions
It's nearly impossible for humans to tell semantic-version differences
by looking at a commit sha.  Since all the actions in question come from
github, there's little security/safety benefit to using SHAs.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-04-10 14:45:36 -04:00
OpenShift Merge Robot
c04ccdbc55 Merge pull request #18121 from containers/renovate/actions-stale-8.x
[skip-ci] Update actions/stale action to v8
2023-04-09 07:20:31 -04:00
OpenShift Merge Robot
b3dd2dbf4c Merge pull request #18115 from containers/renovate/actions-setup-go-4.x
[skip-ci] Update actions/setup-go action to v4
2023-04-09 07:17:55 -04:00
OpenShift Merge Robot
8a6dc0a822 Merge pull request #18112 from containers/renovate/github-issue-labeler-2.x
[skip-ci] Update github/issue-labeler action to v2.6
2023-04-09 07:15:18 -04:00
renovate[bot]
c5a0d86461 [skip-ci] Update actions/upload-artifact action to v3
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-09 10:09:56 +00:00
renovate[bot]
d3cf8ccf84 [skip-ci] Update actions/stale action to v8
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-09 07:32:10 +00:00
renovate[bot]
21fbd5c1ab [skip-ci] Update actions/setup-go action to v4
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-08 22:36:07 +00:00
renovate[bot]
f3971e4124 [skip-ci] Update github/issue-labeler action to v2.6
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-08 11:06:49 +00:00
Chris Evich
45f8b1ca9e [skip-ci] GHA/Cirrus-cron: Fix execution order
Fairly universally, the last Cirrus-Cron job is set to fire off at
22:22 UTC.  However, the re-run of failed jobs GHA workflow was
scheduled for 22:05, meaning it will never re-run the last cirrus-cron
job should it fail.

Re-arrange the execution order so as to give plenty of time between the
last cirrus-cron job starting, the auto-re-run attempt, and the final
failure-check e-mail.

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-12-06 10:38:10 -05:00
Chris Evich
f5a43eea29 GHA: Fix cirrus re-run workflow for other repos.
The checkout action by default, clones the current repository.  However,
since this workflow is re-used by other repos, and it calls scripts in
the podman repo, those calls will all fail.  Fix this by hard-coding the
podman repo.

Ref: https://github.com/actions/checkout

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-11-21 10:59:40 -05:00
Chris Evich
021a23b349 GHA: Configure workflows for reuse
It's possible to reuse a GHA workflow from another repo with minimal
YAML.  However there are certain requirements, like spelling out all the
required secret values.  Also any mention of `ACTIONS_STEP_DEBUG` will
cause failures and must be removed.

As usual, there's no convenient way to test these changes without pushing
to a `main` branch somewhere that also has all the proper secrets
configured.  However, I did pattern these changes off of a working setup
in buildah:

fd2d05c0a7/.github/workflows/check_cirrus_cron.yml

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-11-14 13:52:03 -05:00
Chris Evich
329b053cf5 GHA: Fix undefined secret env. var.
Because in github-actions, setting a secret variable isn't enough.  You
ALSO have to set it again in your YAML.  I guess it's assumed in the
name of "security" that the person with access to secrets, might not
also have access to update YAML.  Crazy!

Also, while I'm at it.  Bump up the execution schedule WRT the
check_cirrus_cron workflow - this will give re-run jobs more time to
complete.

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-11-10 18:07:56 -05:00
Chris Evich
a13a59a703 GHA: Fix make_email-body script reference
This component was recently migrated from being inline, into a dedicated
script file.  This was necessary for testing.  However, it's hard to
test the actual github-actions workflow YAML, and there was a typo.  Fix
the reference to the script filename missing the `.sh` extension.

Ref: https://github.com/containers/podman/pull/16414

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-11-10 14:09:29 -05:00
Chris Evich
fcfb7d2927 GHA: Fix typo.
Whoops Ref: #16414

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-11-10 12:33:18 -05:00
Chris Evich
0334d8d611 Cirrus: Add tests for GHA scripts
Also, fix the rerun_cirrus_cron workflow.  Thanks @ygalblum for spotting
the error.

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-11-07 11:47:30 -05:00
Chris Evich
462ce32e66 GHA: Fix cirrus-cron scripts
Lack of proper testing possibility for github actions and lack of
script-testing by me, allowed several flaws through into 'main'.  Fix
the problems and manually test the scripts to make sure they're working.

Note: Also revert the stupid SHA-based action-pinning back to normal,
human-readable version numbers.  The value of using SHAs in the name of
improved "security" is real, but the value of human-readability and
ease of maintenance is greater.

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-11-07 11:46:34 -05:00
Chris Evich
35523d560a GHA: Auto. re-run failed cirrus-cron builds once
With a seemingly ever growing list of cirrus-cron jobs running on
release branches, there are bound to be some hiccups.  Sometimes a lot
of them.  Normally any failures require a human to eyeball the logs
and/or manually re-run the job to see if it was simply a flake.  This
doesn't take long, but can be distracting and compounds over time.

Attempt to alleviate some maintainer burden by using a new github action
workflow to perform **one** automatic re-run on any failed builds.  This
task is scheduled an hour prior to a second failure check, and generation
of notification e-mail for review.

Note: If there are no failures, due to the auto. re-run or luck, no
e-mail is generated. If this proves useful in this repo, I intend to
re-use this workflow for other repo's cirrus-cron jobs.

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-11-03 13:54:39 -04:00
Chris Evich
3a85d537b6 GHA: Migrate inline script to file
Inline scripts make github-action workflow YAML harder to read/maintain.
Relocate the e-mail formation script to a dedicated file.  This also
permits better input-validation and re-use of a common `err()` function.

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-11-03 13:54:39 -04:00
Chris Evich
980d5b3622 GHA: Simplify script reference
This workflow was originally crafted to be (somehow) reused with
different scripts.  That never happened and the extra indirection is
confusing and hard to maintain.  Remove it.

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-11-03 13:54:38 -04:00
Austin Vazquez
bb78ba19eb Upgrade GitHub actions packages from v2 to v3
Upgrade actions/checkout and actions/upload-artifact packages from v2 to
v3.

Signed-off-by: Austin Vazquez <macedonv@amazon.com>
2022-10-30 20:24:55 -07:00
Ed Santiago
885bc4742d Enable github labeler, use for api-change
Belated followup to #11829: use github labeler workflow[1] to
auto-add 'kind/api-change' label to PRs in which files are
touched under pkg/api

 [1] https://github.com/actions/labeler

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-09-13 07:36:45 -06:00
Jason T. Greene
ecb9f99b88 Add new windows installer and build
Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2022-09-06 16:12:09 -05:00
naveensrinivasan
9cacc18c95 Set permissions for GitHub actions
- Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions

https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs

Signed-off-by: naveensrinivasan <172697+naveensrinivasan@users.noreply.github.com>
2022-03-30 20:36:23 +00:00
Chris Evich
f6963cea13 Cirrus: Build multi-arch images + manifests
Github-actions for large/complex tasks is hard to read and maintain.
Reimplement the multi-arch image build workflow into a set of bash
scripts that use all native contrainer-org tooling.  This requires
a special VM image setup with emulation to build foreign architectures.
It also requires renaming the `helloimage` directory, because the build
script uses the directory name in the image FQIN.

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-03-28 16:56:28 -04:00
naveensrinivasan
1821eb3837 Pin actions to a full length commit SHA
- Pinned actions by SHA https://github.com/ossf/scorecard/blob/main/docs/checks.md#pinned-dependencies
- Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions

>Pin actions to a full length commit SHA

>Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps mitigate the risk of a bad actor adding a backdoor to the action's repository, as they would need to generate a SHA-1 collision for a valid Git object payload.

https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-third-party-actions

Also dependabot supports upgrades based on SHA.

Signed-off-by: naveensrinivasan <172697+naveensrinivasan@users.noreply.github.com>
2022-03-28 19:00:16 +00:00
Paul Holzinger
525bdc3771 github: label issues based on os
We get a lot of issues for podman-remote on macos. Since the fact that
this is a remote client is often overlooked by us lets add windows, macos
and remote label automatically based on a regex which should match the
output of podman version.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-01-27 17:51:35 +01:00
Chris Evich
6df245c6ec Github-workflow: Fix YAML syntax
The `body` string value must be quoted because it contains a colon.

Also fix an incorrect URL substitution reference in error-notice e-mail
body text.

(In my defense...testing this workflow is basically impractical without
merging it)

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-01-25 12:39:17 -05:00
Chris Evich
29e89da1a2 Github workflow: Send e-mail on job error
This job is designed to be silent when Cirrus-cron executions pass.
Unless specifically instructed, the workflow itself will also remain
silent if there's an error.  Fix this by catching workflow errors and
sending a notification e-mail containing a link to the failed run.  This
also requires listing the recipient addresses directly in the workflow.
Otherwise (as previouslly implemented) the value would not be retrieved
if/when any previous step raised an error.

**Note**: Due to the way this workflow is implemented, there is no way
easy way to test it other than directly on the `main` repo. branch.

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-01-24 15:41:50 -05:00
Chris Evich
32b5892164 Multi-arch image build: Daily version-tag push
This mirrors changes from
https://github.com/containers/buildah/pull/3381

Signed-off-by: Chris Evich <cevich@redhat.com>
2021-07-27 14:15:25 -04:00
Chris Evich
e64545004e [CI:DOCS] Multi-arch image workflow: Make steps generic
This duplicates the change from
https://github.com/containers/skopeo/pull/1379

Since this workflow is duplicated across three repositories, maintaining
changes becomes onerous if the item contents vary between
implementations in any way. Improve this situation by encoding the
repository-specific details into env. vars. then referencing those vars
throughout. This way, a meaningful diff can be worked with to compare
the contents across repositories.

Also included are abstractions for the specific command used to obtain
the project version, and needed details for filtering the output. Both
of these vary across the Buildah, Skopeo, and Podman repos.

NOTE: This change requires the names of two github action secrets
to be updated: PODMAN_QUAY_USERNAME -> REPONAME_QUAY_USERNAME
(and *PASSWORD).

Signed-off-by: Chris Evich <cevich@redhat.com>
2021-07-20 09:43:58 -04:00
Chris Evich
fe044d51ea Fix cirrus-cron failure notification GH workflow
The master->main rename broke this.  Also update the runtime along with
a comment w/ link to the actual job definitions.

Signed-off-by: Chris Evich <cevich@redhat.com>
2021-07-12 10:39:34 -04:00
Chris Evich
6b230bc924 Fix multi-arch image build clone:failure
A suspected recent change in docker (in github-actions Ubuntu
environment) results in a error:

```
cannot clone: Operation not permitted
Error: cannot re-exec process
```

Fix this by using podman to execute the container instead of docker.

Signed-off-by: Chris Evich <cevich@redhat.com>
2021-06-16 16:44:42 -04:00
Chris Evich
3c82059c3d Sync. workflow across skopeo, buildah, and podman
Besides adding ***BIG FAT WARNING*** this commit updates the
containers-repo. logic to only (and properly) handle the `stable` image
(both version and `latest` tags).  This change was already discussed at
length with @TomSweeneyRedHat.

Signed-off-by: Chris Evich <cevich@redhat.com>
2021-05-21 14:39:01 -04:00
Stuart Shelton
60eb4e74d1 Use more recent stale release...
… as currently with `v1`, `remove-stale-when-updated` is set but isn't causing labels to be updated when comments are added.

Signed-off-by: Stuart Shelton <stuart@shelton.me>
2021-05-16 19:02:18 +01:00
Chris Evich
9db9fa2a08 Fix variable reference typo. in multi-arch image action
Bug introduced by #10150

Also, in case of failure of one matrix-leg, do not terminate execution
of all others.  There are many reasons why an item could fail (i.e.
temporary networking problem).  Since the job runs periodically,
we can simply allow the subsequent run to cover for any missed images
pushes due to sporadic job failures.

Signed-off-by: Chris Evich <cevich@redhat.com>
2021-05-03 10:56:34 -04:00
Chris Evich
00f2f7d14e Fix multi-arch image workflow typo
Signed-off-by: Chris Evich <cevich@redhat.com>
2021-04-30 13:50:41 -04:00