some notes for workflows

This commit is contained in:
tristan 2025-01-09 18:04:29 +01:00
parent bc25b82d6d
commit d1424b54d8

53
Workflow-samples.md Normal file
View file

@ -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"
```