From 83e7b4ae1034682756efdd5d9ddded759f5f17ea Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Sun, 3 Aug 2025 08:34:09 +0000 Subject: [PATCH] chore(cleanup): dispatch workflows according to the role of the repository (#790) The `vars.ROLE` in each repository was set as follows: - https://code.forgejo.org/forgejo/runner => forgejo-coding - https://code.forgejo.org/forgejo-integration/runner => forgejo-integration - https://invisible.forgejo.org/forgejo/runner => forgejo-release It reflects how Forgejo roles are dispatched. Update all workflows to use the ROLE to determine if it is relevant for them to run. It is more straightforward than the previous approach based on the name of the owner. There were cases where the logic was wrong and workflows ran needlessly, for instance because the runner release is now published from an organization that is forgejo and not forgejo-release. - other - [PR](https://code.forgejo.org/forgejo/runner/pulls/790): chore(cleanup): dispatch workflows according to the role of the repository Reviewed-on: https://code.forgejo.org/forgejo/runner/pulls/790 Reviewed-by: Michael Kriese Co-authored-by: Earl Warren Co-committed-by: Earl Warren --- .forgejo/workflows/act.yml | 2 ++ .forgejo/workflows/build-release-integration.yml | 2 +- .forgejo/workflows/build-release.yml | 2 +- .forgejo/workflows/docker-build-push-action-in-lxc.yml | 7 ++++++- .forgejo/workflows/example-docker-compose.yml | 2 +- .forgejo/workflows/example-lxc-systemd.yml | 2 +- .forgejo/workflows/publish-release.yml | 3 ++- .forgejo/workflows/test.yml | 4 ++-- 8 files changed, 16 insertions(+), 8 deletions(-) diff --git a/.forgejo/workflows/act.yml b/.forgejo/workflows/act.yml index 206eaae9..46175b3b 100644 --- a/.forgejo/workflows/act.yml +++ b/.forgejo/workflows/act.yml @@ -13,6 +13,7 @@ env: jobs: unit: runs-on: docker + if: vars.ROLE == 'forgejo-coding' container: image: 'code.forgejo.org/oci/node:22-bookworm' steps: @@ -58,6 +59,7 @@ jobs: integration: runs-on: lxc-bookworm + if: vars.ROLE == 'forgejo-coding' needs: [unit] steps: - uses: https://code.forgejo.org/actions/checkout@v4 diff --git a/.forgejo/workflows/build-release-integration.yml b/.forgejo/workflows/build-release-integration.yml index 748faf59..4adba81c 100644 --- a/.forgejo/workflows/build-release-integration.yml +++ b/.forgejo/workflows/build-release-integration.yml @@ -21,7 +21,7 @@ enable-email-notifications: true jobs: release-simulation: runs-on: lxc-bookworm - if: forge.repository_owner != 'forgejo-integration' && forge.repository_owner != 'forgejo-release' + if: vars.ROLE == 'forgejo-coding' steps: - uses: actions/checkout@v4 diff --git a/.forgejo/workflows/build-release.yml b/.forgejo/workflows/build-release.yml index 4bfcf411..6bb6c4b4 100644 --- a/.forgejo/workflows/build-release.yml +++ b/.forgejo/workflows/build-release.yml @@ -21,7 +21,7 @@ jobs: release: runs-on: lxc-bookworm # root is used for testing, allow it - if: secrets.ROLE == 'forgejo-integration' || forge.repository_owner == 'root' + if: vars.ROLE == 'forgejo-integration' || forge.repository_owner == 'root' steps: - uses: actions/checkout@v4 diff --git a/.forgejo/workflows/docker-build-push-action-in-lxc.yml b/.forgejo/workflows/docker-build-push-action-in-lxc.yml index 1b913008..25786011 100644 --- a/.forgejo/workflows/docker-build-push-action-in-lxc.yml +++ b/.forgejo/workflows/docker-build-push-action-in-lxc.yml @@ -14,6 +14,11 @@ on: branches: - 'main' pull_request: + paths: + - examples/docker-build-push-action/** + - .forgejo/workflows/docker-build-push-action-in-lxc.yml + +enable-email-notifications: true env: FORGEJO_VERSION: 11.0.3 # renovate: datasource=docker depName=code.forgejo.org/forgejo/forgejo @@ -22,7 +27,7 @@ env: jobs: docker-build-push-action-in-lxc: - if: forge.repository_owner != 'forgejo-integration' && forge.repository_owner != 'forgejo-experimental' && forge.repository_owner != 'forgejo-release' + if: vars.ROLE == 'forgejo-coding' runs-on: lxc-bookworm steps: diff --git a/.forgejo/workflows/example-docker-compose.yml b/.forgejo/workflows/example-docker-compose.yml index 64ef8730..dce57a39 100644 --- a/.forgejo/workflows/example-docker-compose.yml +++ b/.forgejo/workflows/example-docker-compose.yml @@ -12,7 +12,7 @@ enable-email-notifications: true jobs: example-docker-compose: - if: forge.repository_owner != 'forgejo-integration' && forge.repository_owner != 'forgejo-experimental' && forge.repository_owner != 'forgejo-release' + if: vars.ROLE == 'forgejo-coding' runs-on: lxc-bookworm steps: - uses: actions/checkout@v4 diff --git a/.forgejo/workflows/example-lxc-systemd.yml b/.forgejo/workflows/example-lxc-systemd.yml index 377fe78f..cca4f934 100644 --- a/.forgejo/workflows/example-lxc-systemd.yml +++ b/.forgejo/workflows/example-lxc-systemd.yml @@ -17,7 +17,7 @@ env: jobs: example-lxc-systemd: - if: forge.repository_owner != 'forgejo-integration' && forge.repository_owner != 'forgejo-experimental' && forge.repository_owner != 'forgejo-release' + if: vars.ROLE == 'forgejo-coding' runs-on: lxc-bookworm steps: - uses: https://data.forgejo.org/actions/checkout@v4 diff --git a/.forgejo/workflows/publish-release.yml b/.forgejo/workflows/publish-release.yml index 5f20df79..247ec929 100644 --- a/.forgejo/workflows/publish-release.yml +++ b/.forgejo/workflows/publish-release.yml @@ -8,6 +8,7 @@ # vars.FROM_OWNER: forgejo-integration # vars.TO_OWNER: forgejo # vars.DOER: release-team +# vars.ROLE: forgejo-release # secrets.TOKEN: # secrets.GPG_PRIVATE_KEY: # secrets.GPG_PASSPHRASE: @@ -24,7 +25,7 @@ enable-email-notifications: true jobs: publish: runs-on: lxc-bookworm - if: vars.DOER != '' && vars.FORGEJO != '' && vars.TO_OWNER != '' && vars.FROM_OWNER != '' && secrets.TOKEN != '' + if: vars.ROLE == 'forgejo-release' steps: - uses: https://data.forgejo.org/actions/checkout@v4 diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml index 53182a98..9ce07101 100644 --- a/.forgejo/workflows/test.yml +++ b/.forgejo/workflows/test.yml @@ -19,7 +19,7 @@ env: jobs: build-and-tests: name: build and test - if: forge.repository_owner != 'forgejo-integration' && forge.repository_owner != 'forgejo-experimental' && forge.repository_owner != 'forgejo-release' + if: vars.ROLE == 'forgejo-coding' runs-on: docker container: image: 'code.forgejo.org/oci/ci:1' @@ -76,7 +76,7 @@ jobs: runner-exec-tests: needs: [build-and-tests] name: runner exec tests - if: forge.repository_owner != 'forgejo-integration' && forge.repository_owner != 'forgejo-experimental' && forge.repository_owner != 'forgejo-release' + if: vars.ROLE == 'forgejo-coding' runs-on: lxc-bookworm steps: