Reviewed-on: https://code.forgejo.org/forgejo/end-to-end/pulls/1273 Reviewed-by: earl-warren <earl-warren@noreply.code.forgejo.org> Reviewed-by: Gusted <gusted@noreply.code.forgejo.org> Co-authored-by: famfo <famfo@famfo.xyz> Co-committed-by: famfo <famfo@famfo.xyz>
156 lines
4.4 KiB
YAML
156 lines
4.4 KiB
YAML
#
|
|
#
|
|
# https://code.forgejo.org/forgejo/end-to-end/settings/actions
|
|
#
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- 'main'
|
|
|
|
enable-email-notifications: true
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: docker
|
|
container:
|
|
image: 'data.forgejo.org/oci/node:20-bookworm'
|
|
outputs:
|
|
built: "${{ steps.build.outputs.built }}"
|
|
steps:
|
|
- uses: https://data.forgejo.org/actions/checkout@v4
|
|
- uses: https://data.forgejo.org/actions/setup-go@v5
|
|
with:
|
|
go-version: "1.22"
|
|
- name: lib/build.sh
|
|
id: build
|
|
run: |
|
|
mkdir $d /tmp/forgejo-upload
|
|
touch /tmp/forgejo-upload/PLACEHOLDER
|
|
|
|
if ! test -f forgejo/build-from-sources; then
|
|
echo forgejo/build-from-sources is not present, do not build any version from source
|
|
echo "built=no" >> $FORGEJO_OUTPUT
|
|
exit 0
|
|
fi
|
|
|
|
set -x
|
|
#
|
|
# SQLite needs gcc to be compiled
|
|
#
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
apt-get update -qq
|
|
apt-get -q install -y -qq build-essential
|
|
|
|
d=/tmp/forgejo-binaries
|
|
|
|
for version in $(cat forgejo/build-from-sources) ; do
|
|
lib/build.sh $version $d
|
|
forgejo=$d/forgejo-$version-dev
|
|
$forgejo --version
|
|
mv $forgejo /tmp/forgejo-upload/forgejo-$version
|
|
done
|
|
|
|
echo "built=yes" >> $FORGEJO_OUTPUT
|
|
|
|
- name: steps context dump for debug
|
|
run: |
|
|
set -x
|
|
cat <<EOF
|
|
${{ toJSON(steps) }}
|
|
EOF
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
if: ${{ steps.build.outputs.built == 'yes' }}
|
|
with:
|
|
name: forgejo-dev
|
|
path: /tmp/forgejo-upload
|
|
|
|
packages:
|
|
needs: [build]
|
|
runs-on: lxc-trixie
|
|
steps:
|
|
- uses: https://data.forgejo.org/actions/checkout@v4
|
|
- uses: ./.forgejo/prepare-end-to-end
|
|
with:
|
|
built: ${{ needs.build.outputs.built }}
|
|
- run: su forgejo -c "./end-to-end.sh test_packages"
|
|
- if: ${{ needs.build.outputs.built == 'yes' }}
|
|
uses: ./.forgejo/upload-coverage
|
|
with:
|
|
scope: packages
|
|
- name: full logs
|
|
if: always()
|
|
run: su forgejo -c "./end-to-end.sh show_logs"
|
|
|
|
actions:
|
|
needs: [build]
|
|
runs-on: lxc-trixie
|
|
steps:
|
|
- uses: https://data.forgejo.org/actions/checkout@v4
|
|
- uses: ./.forgejo/prepare-end-to-end
|
|
with:
|
|
built: ${{ needs.build.outputs.built }}
|
|
- run: ./end-to-end.sh prepare_dockerd
|
|
- run: su forgejo -c "./end-to-end.sh test_actions"
|
|
- if: ${{ needs.build.outputs.built == 'yes' }}
|
|
uses: ./.forgejo/upload-coverage
|
|
with:
|
|
scope: actions
|
|
- name: full logs
|
|
if: always()
|
|
run: su forgejo -c "./end-to-end.sh show_logs"
|
|
|
|
federation:
|
|
needs: [build]
|
|
runs-on: lxc-trixie
|
|
steps:
|
|
- uses: https://data.forgejo.org/actions/checkout@v4
|
|
- uses: ./.forgejo/prepare-end-to-end
|
|
with:
|
|
built: ${{ needs.build.outputs.built }}
|
|
- name: install zstd
|
|
run: |
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
apt-get -q install -y -qq zstd
|
|
- name: cache GitLab OCI image
|
|
uses: https://data.forgejo.org/actions/cache@v4
|
|
with:
|
|
path: |
|
|
/srv/forgejo-binaries/gitlab
|
|
key: gitlab
|
|
- name: setup dbus
|
|
run: |
|
|
apt-get -q install -y -qq dbus
|
|
systemctl enable --now dbus
|
|
- name: run test_federation
|
|
run: |
|
|
chown -R forgejo:forgejo .
|
|
su forgejo -c "./end-to-end.sh test_federation"
|
|
- if: ${{ needs.build.outputs.built == 'yes' }}
|
|
uses: ./.forgejo/upload-coverage
|
|
with:
|
|
scope: federation
|
|
- name: full logs
|
|
if: always()
|
|
run: su forgejo -c "./end-to-end.sh show_logs"
|
|
|
|
upgrade:
|
|
name: upgrade and storage
|
|
needs: [build]
|
|
runs-on: lxc-trixie
|
|
steps:
|
|
- uses: https://data.forgejo.org/actions/checkout@v4
|
|
- uses: ./.forgejo/prepare-end-to-end
|
|
with:
|
|
built: ${{ needs.build.outputs.built }}
|
|
- run: su forgejo -c "./end-to-end.sh test_upgrades"
|
|
- run: su forgejo -c "./end-to-end.sh test_storage"
|
|
- if: ${{ needs.build.outputs.built == 'yes' }}
|
|
uses: ./.forgejo/upload-coverage
|
|
with:
|
|
scope: upgrade
|
|
- name: full logs
|
|
if: always()
|
|
run: su forgejo -c "./end-to-end.sh show_logs"
|