From d1424b54d84e1d123cfa2d9c2d3c65ae2181e273 Mon Sep 17 00:00:00 2001 From: tristan Date: Thu, 9 Jan 2025 18:04:29 +0100 Subject: [PATCH] some notes for workflows --- Workflow-samples.md | 53 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 Workflow-samples.md diff --git a/Workflow-samples.md b/Workflow-samples.md new file mode 100644 index 0000000..e700728 --- /dev/null +++ b/Workflow-samples.md @@ -0,0 +1,53 @@ +Workflows koennen mit der forgejo-runner installation getestet werden: + +```bash +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) +```yml +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. +```yml +- 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. + +```yml +- 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" +``` +