forgejo-release/.forgejo/workflows/integration.yml
Earl Warren ac7e1b6ea3
fix(security): use the --token argument of rna instead of basic auth (#75)
Reviewed-on: https://code.forgejo.org/actions/forgejo-release/pulls/75
Co-authored-by: Earl Warren <contact@earl-warren.org>
Co-committed-by: Earl Warren <contact@earl-warren.org>
2025-08-01 23:32:59 +00:00

71 lines
3.3 KiB
YAML

on: [ pull_request, push ]
jobs:
integration:
runs-on: self-hosted
steps:
- uses: actions/checkout@v4
- id: forgejo
uses: https://code.forgejo.org/actions/setup-forgejo@v3.0.1
with:
user: testuser
password: admin1234
image-version: 9
- name: push self
run: |
forgejo-test-helper.sh push_self_action http://testuser:admin1234@${{ steps.forgejo.outputs.host-port }} testuser forgejo-release vTest
- name: testdata/upload-download
run: |
export LOOP_DELAY=30
export FORGEJO_RUNNER_LOGS="${{ steps.forgejo.outputs.runner-logs }}"
forgejo-test-helper.sh run_workflow testdata/upload-download http://testuser:admin1234@${{ steps.forgejo.outputs.host-port }} testuser upload-download forgejo-release "${{ steps.forgejo.outputs.token }}"
set -ex
export FORGEJO="${{ steps.forgejo.outputs.url }}"
curl --fail -sS $FORGEJO/api/v1/repos/testuser/upload-download/releases/tags/v2.0 > /tmp/v2.json
EXPECTED='No shell expansion should on these notes:
- $(some_command)
- `other_commend`
- "double quoted" and '\''single quoted'\'' strings
- \backslash escape
- !exclamation_mark'
test "$EXPECTED" = "$(jq -r .body < /tmp/v2.json)"
test $(cat /tmp/v2.json | jq -r .hide_archive_links) = false
curl --fail -sS $FORGEJO/api/v1/repos/testuser/upload-download/releases/tags/v1.0 > /tmp/v1.json
cat /tmp/v1.json | jq -r .body | grep '<!--start release-notes-assistant-->'
test $(cat /tmp/v1.json | jq -r .hide_archive_links) = true
# - name: testdata/upload-download-private
# run: |
# export LOOP_DELAY=30
# export FORGEJO_RUNNER_LOGS="${{ steps.forgejo.outputs.runner-logs }}"
# curl -X 'POST' 'http://testuser:admin1234@${{ steps.forgejo.outputs.host-port }}/api/v1/user/repos' -H 'accept: application/json' -H 'Content-Type: application/json' -d '{"name": "upload-download-private","private": true}'
# forgejo-test-helper.sh run_workflow testdata/upload-download http://testuser:admin1234@${{ steps.forgejo.outputs.host-port }} testuser upload-download-private forgejo-release "${{ steps.forgejo.outputs.token }}"
- name: testdata/nested-upload-download
run: |
export LOOP_DELAY=30
export FORGEJO_RUNNER_LOGS="${{ steps.forgejo.outputs.runner-logs }}"
forgejo-test-helper.sh run_workflow testdata/nested-upload-download http://testuser:admin1234@${{ steps.forgejo.outputs.host-port }} testuser nested-upload-download forgejo-release "${{ steps.forgejo.outputs.token }}"
- name: test forgejo-release.sh
run: |
set -ex
export FORGEJO="${{ steps.forgejo.outputs.url }}"
export TOKEN="${{ steps.forgejo.outputs.token }}"
export VERBOSE=true
testdata/forgejo-release-test.sh test_run testuser otherrepo
- if: always()
name: '[RUNNER] and [FORGEJO] logs'
run: |
runner_logs="${{ steps.forgejo.outputs.runner-logs }}"
if test -f "$runner_logs"; then
sed -e 's/^/[RUNNER] /' < $runner_logs
fi
docker logs forgejo | sed -e 's/^/[FORGEJO] /'