From ead5e1dcef3d9fb3cd10a3672d582e49a624d485 Mon Sep 17 00:00:00 2001 From: Snider Date: Fri, 27 Feb 2026 17:00:19 +0000 Subject: [PATCH] feat: add Forgejo release workflow for Composer registry On tag push (v*), zips the package and publishes to the forge.lthn.ai Composer package registry. Co-Authored-By: Claude Opus 4.6 --- .forgejo/workflows/release.yml | 42 ++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 .forgejo/workflows/release.yml diff --git a/.forgejo/workflows/release.yml b/.forgejo/workflows/release.yml new file mode 100644 index 0000000..e1bfdbd --- /dev/null +++ b/.forgejo/workflows/release.yml @@ -0,0 +1,42 @@ +name: Publish Composer Package + +on: + push: + tags: + - 'v*' + +jobs: + publish: + runs-on: docker + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Extract version from tag + id: version + run: echo "VERSION=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT" + + - name: Create package archive + run: | + zip -r package.zip . \ + -x ".forgejo/*" \ + -x ".git/*" \ + -x "tests/*" \ + -x "docker/*" \ + -x "*.yaml" \ + -x "infection.json5" \ + -x "phpstan.neon" \ + -x "phpunit.xml" \ + -x "psalm.xml" \ + -x "rector.php" \ + -x "TODO.md" \ + -x "ROADMAP.md" \ + -x "CONTRIBUTING.md" \ + -x "package.json" \ + -x "package-lock.json" + + - name: Publish to Forgejo Composer registry + run: | + curl --fail --user "${{ secrets.REGISTRY_USER }}:${{ secrets.REGISTRY_TOKEN }}" \ + --upload-file package.zip \ + "${{ github.server_url }}/api/packages/core/composer?version=${{ steps.version.outputs.VERSION }}"