notes/Forgejo-Workflows-Actions.md

1.8 KiB

Workflows koennen mit der forgejo-runner installation getestet werden:

forgejo-runner exec

Der Befehl sucht im aktuellen Verzeichnis nach dem Ordner .forgejo/workflows und nutzt die .yml Dateien.

Die workflows muessen mit on: [push] beginnen

Bestimmtes Docker-Image nutzen

(Runner ist als 'docker' gelabelt)

on: [push]
jobs:
  test:
    runs-on: docker
    container:
      image: alpine:3.19
    steps:
      - run: |
          grep Alpine /etc/os-release
          echo SUCCESS          

Github Actions nutzen

Wenn uses ohne https://github.com/ genutzt wird, dann wird die action unter https://code.forgejo.org/ gesucht.

- name: Setup PHP
        uses: https://github.com/shivammathur/setup-php@v2
        with:
          php-version: '8.1' # Oder deine benötigte PHP-Version

Publish composer package to ftf

Vorraussetzung ist die Anlage eines tokens zum Schreiben in die Pakete (https://git.fucktheforce.de/user/settings/applications) und die Anlage eines Secrets (https://git.fucktheforce.de/user/settings/actions/secrets). hier mit dem Namen "WORKFLOW_TOKEN".

CURL ohne --fail fuehrt dazu, dass der Workflow erfolgreich ist auch wenn der Upload nicht erfolgt ist.

- name: Build package
  run: composer archive --format=zip --file=package

- name: Publish to Forgejo Package Registry
  run: |
    echo "Publishing to https://git.fucktheforce.de/api/packages/${{ github.repository_owner }}/composer?version=${{ github.ref_name }}"
    curl --request PUT --fail --silent \
      --url "https://git.fucktheforce.de/api/packages/${{ github.repository_owner }}/composer?version=${{ github.ref_name }}" \
      --header "Authorization: Bearer ${{ secrets.WORKFLOW_TOKEN }}" \
      --header "Content-Type: application/zip" \
      --data-binary "@package.zip"