Files
docker-compose-docker/.gitea/workflows/auto-release.yaml
T
CSRBot ae6ac24f1c
Build / build-amd64 (pull_request) Successful in 51s
Build / build-arm64 (pull_request) Failing after 13m26s
Lint Markdown files / markdown-lint (pull_request) Successful in 5s
chore(deps): pin dependencies
2026-06-05 12:08:13 +00:00

74 lines
2.3 KiB
YAML

name: Auto release tagged
on:
push:
branches: [ "master" ]
paths:
- Dockerfile
env:
GIT_EMAIL: noreply@cryptic.systems
GIT_USER: CSRBot
jobs:
tag_on_change:
permissions:
actions: write
contents: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
fetch-depth: 0
- name: Check if DC_VERSION line changed
id: check_change
run: |
echo "changed=false" >> $GITHUB_OUTPUT
for file in Dockerfile; do
if git diff HEAD~1 HEAD -- "${file}" | grep --quiet '^[+-]ARG DC_VERSION'; then
echo "DC_VERSION line changed."
echo "changed=true" >> $GITHUB_OUTPUT
break
fi
done
- name: Stop if no change detected
if: steps.check_change.outputs.changed == 'false'
run: echo "No DC_VERSION change. Exiting..."
- name: Create and push new tag
id: create_tag
if: steps.check_change.outputs.changed == 'true'
run: |
defined_tag="$(grep --only-matching --perl-regexp 'ARG DC_VERSION=v?[\d]*(\.[\d]*){0,2}' Dockerfile | head --lines 1 | cut --delimiter='=' --fields=2)"
echo "defined_tag=${defined_tag}" >> $GITHUB_OUTPUT
echo "New tag: ${defined_tag}"
git config --local user.name "${GIT_USER}"
git config --local user.email "${GIT_EMAIL}"
git tag -a "${defined_tag}" -m "${defined_tag}"
git push origin "${defined_tag}"
- name: Trigger "Push tagged images" workflow
if: steps.check_change.outputs.changed == 'true'
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
with:
script: |
const workflowFileName = 'release-tagged.yaml';
const defaultBranch = context.payload.repository.default_branch;
const definedTag = '${{ steps.create_tag.outputs.defined_tag }}';
await github.rest.actions.createWorkflowDispatch({
owner: context.repo.owner,
repo: context.repo.repo,
workflow_id: workflowFileName,
ref: defaultBranch,
inputs: {
tag: definedTag
}
});