Skip to content

Actionsflow

Actionsflow #12215

Workflow file for this run

---
name: Actionsflow
# event `repository_dispatch` with the type `webhook` is reserved by Actionsflow.
on:
schedule:
- cron: "0 * * * *"
push:
branches:
- main
paths:
- ".github/workflows/actionsflow.yaml"
- "workflows/**"
repository_dispatch:
types: [webhook]
workflow_dispatch:
inputs:
include:
description: |
--include: workflow file filter
You can use glob format to filter your workflows. The default value
is empty value, meaning no filter will be applied.
required: false
default: ""
force:
description: "--force: whether force to run workflow (true or false)"
required: false
default: "false"
verbose:
description: "--verbose: debug workflow (true or false)"
required: false
default: "false"
jobs:
run:
runs-on: ["gha-home-ops"]
name: Run
concurrency: actionsflow
steps:
- uses: actions/checkout@v4
- name: Run Actionsflow
uses: qlonik/actionsflow-action@v3
with:
args: >-
build
${{ github.event.inputs.include != '' && format('--include "{0}"', github.event.inputs.include) || '' }}
-f ${{ github.event.inputs.force == 'true' && 'true' || 'false' }}
--verbose ${{ github.event.inputs.verbose == 'true' && 'true' || 'false' }}
json-secrets: ${{ toJSON(secrets) }}
json-github: ${{ toJSON(github) }}
- name: Check workflow files
id: check-workflow-files
run: |-
if [[ -d "./dist/workflows" && ! -z "$(ls -A ./dist/workflows)" ]]; then
echo "present=true" >> "$GITHUB_OUTPUT"
fi
- name: Install act
if: ${{ steps.check-workflow-files.outputs.present == 'true' }}
run: curl -fsSL https://raw.githubusercontent.com/nektos/act/master/install.sh | bash -s -- -b ~/bin/
- name: Run act
if: ${{ steps.check-workflow-files.outputs.present == 'true' }}
# Consider adding support for cache artifacts
# https://github.com/nektos/act/issues/329#issuecomment-1187246629
# With this, cache action can be used in actionsflow workflows, caught by act
# and then uploaded to actual github cache
run: |-
~/bin/act \
${{ github.event.inputs.verbose == 'true' && '--verbose' || '' }} \
--bind \
--eventpath ./dist/event.json \
--workflows ./dist/workflows \
--secret-file ./dist/.secrets \
--env-file ./dist/.env \
--platform ubuntu-latest=ghcr.io/catthehacker/ubuntu:act-latest