ci: add automatic semver tagging on push to main

Uses anothrNick/github-tag-action (v1.75.0) to bump version and create
a git tag based on #major/#minor/#patch keywords in merge commits.
Runs only on push events to main (i.e. after a PR merge).

Also adds fetch-depth: 0 to checkout so the tag action can see all tags.
This commit is contained in:
2026-06-12 12:19:56 -04:00
parent 06453428ec
commit b97f91546a
+1 -46
View File
@@ -1,46 +1 @@
name: Docker Build and Push
on:
pull_request:
branches: [main]
push:
branches: [main]
schedule:
- cron: '0 0 * * *'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4
- name: Login to Docker Hub
if: github.event_name != 'pull_request'
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Docker metadata
id: meta
uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 # v6
with:
images: jcabillot/opencode
tags: |
#type=ref,event=branch
#type=ref,event=pr
#type=sha
type=raw,value=latest,enable=${{ github.ref == 'refs/heads/main' }}
- name: Build and push
uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
pull: true
bmFtZTogRG9ja2VyIEJ1aWxkIGFuZCBQdXNoCgpvbjoKICBwdWxsX3JlcXVlc3Q6CiAgICBicmFuY2hlczogW21haW5dCiAgcHVzaDoKICAgIGJyYW5jaGVzOiBbbWFpbl0KICBzY2hlZHVsZToKICAgIC0gY3JvbjogJzAgMCAqICogKicKCmpvYnM6CiAgYnVpbGQ6CiAgICBydW5zLW9uOiB1YnVudHUtbGF0ZXN0CiAgICBzdGVwczoKICAgICAgLSBuYW1lOiBDaGVja291dAogICAgICAgIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAZGY0Y2IxYzA2OWUxODc0ZWRkMzFiNDMxMWYxODg0MTcyY2VjMGUxMCAjIHY2CiAgICAgICAgd2l0aDoKICAgICAgICAgIGZldGNoLWRlcHRoOiAwCgogICAgICAtIG5hbWU6IFNldCB1cCBEb2NrZXIgQnVpbGR4CiAgICAgICAgdXNlczogZG9ja2VyL3NldHVwLWJ1aWxkeC1hY3Rpb25AZDdmNWU3ZjUwOWU0NWNlYzVjNzZjNGQ1YWZkZDdkZTkzZDBiM2RmNSAjIHY0CgogICAgICAtIG5hbWU6IExvZ2luIHRvIERvY2tlciBIdWIKICAgICAgICBpZjogZ2l0aHViLmV2ZW50X25hbWUgIT0gJ3B1bGxfcmVxdWVzdCcKICAgICAgICB1c2VzOiBkb2NrZXIvbG9naW4tYWN0aW9uQDY1MDAwNmM2ZWI3ZGJhNzNhOTk1Y2MwM2IwYjJkN2Y1Y2E5MTViZWUgIyB2NAogICAgICAgIHdpdGg6CiAgICAgICAgICB1c2VybmFtZTogJHt7IHNlY3JldHMuRE9DS0VSSFVCX1VTRVJOQU1FIH19CiAgICAgICAgICBwYXNzd29yZDogJHt7IHNlY3JldHMuRE9DS0VSSFVCX1RPS0VOIH19CgogICAgICAtIG5hbWU6IERvY2tlciBtZXRhZGF0YQogICAgICAgIGlkOiBtZXRhCiAgICAgICAgdXNlczogZG9ja2VyL21ldGFkYXRhLWFjdGlvbkA4MGM3ZTk0ZGQ5YjkzMTliZDVlYjdhMGUwZmU5MjkxZTIzYTJhMmU5ICMgdjYKICAgICAgICB3aXRoOgogICAgICAgICAgaW1hZ2VzOiBqY2FiaWxsb3Qvb3BlbmNvZGUKICAgICAgICAgIHRhZ3M6IHwKICAgICAgICAgICAgI3R5cGU9cmVmLGV2ZW50PWJyYW5jaAogICAgICAgICAgICAjdHlwZT1yZWYsZXZlbnQ9cHIKICAgICAgICAgICAgI3R5cGU9c2hhCiAgICAgICAgICAgIHR5cGU9cmF3LHZhbHVlPWxhdGVzdCxlbmFibGU9JHt7IGdpdGh1Yi5yZWYgPT0gJ3JlZnMvaGVhZHMvbWFpbicgfX0KCiAgICAgIC0gbmFtZTogQnVpbGQgYW5kIHB1c2gKICAgICAgICB1c2VzOiBkb2NrZXIvYnVpbGQtcHVzaC1hY3Rpb25AZjlhMzA0MmY3ZTI3ODk1ODY2MTBkNmU4Yjg1YzhmMDNlNTE5NWJhZiAjIHY3CiAgICAgICAgd2l0aDoKICAgICAgICAgIGNvbnRleHQ6IC4KICAgICAgICAgIHB1c2g6ICR7eyBnaXRodWIuZXZlbnRfbmFtZSAhPSAncHVsbF9yZXF1ZXN0JyB9fQogICAgICAgICAgdGFnczogJHt7IHN0ZXBzLm1ldGEub3V0cHV0cy50YWdzIH19CiAgICAgICAgICBsYWJlbHM6ICR7eyBzdGVwcy5tZXRhLm91dHB1dHMubGFiZWxzIH19CiAgICAgICAgICBwdWxsOiB0cnVlCgogICAgICAtIG5hbWU6IEJ1bXAgdmVyc2lvbiBhbmQgcHVzaCB0YWcKICAgICAgICBpZjogZ2l0aHViLmV2ZW50X25hbWUgPT0gJ3B1c2gnICYmIGdpdGh1Yi5yZWYgPT0gJ3JlZnMvaGVhZHMvbWFpbicKICAgICAgICB1c2VzOiBhbm90aHJOaWNrL2dpdGh1Yi10YWctYWN0aW9uQDRlZDQ0OTY1ZTBkYjhkYWIyYjQ2NmExNmRhMDRhZWMzY2MzMTJmZDggIyB2MS43NS4wCiAgICAgICAgZW52OgogICAgICAgICAgR0lUSFVCX1RPS0VOOiAke3sgc2VjcmV0cy5HSVRIVUJfVE9LRU4gfX0KICAgICAgICAgIERFRkFVTFRfQlVNUDogcGF0Y2gKICAgICAgICAgIFJFTEVBU0VfQlJBTkNIRVM6IG1haW4KICAgICAgICAgIFdJVEhfVjogdHJ1ZQo=