mirror of
https://codeberg.org/forgejo/forgejo
synced 2024-11-29 13:16:10 +01:00
Merge pull request 'ci: Move preparations to local actions' (#5410) from fnetx/ci-boilerplate into forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5410 Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
This commit is contained in:
commit
3a38dbac17
29
.forgejo/workflows/composite/apt-install-from/action.yaml
Normal file
29
.forgejo/workflows/composite/apt-install-from/action.yaml
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
inputs:
|
||||||
|
packages:
|
||||||
|
description: 'Packages to install'
|
||||||
|
required: true
|
||||||
|
release:
|
||||||
|
description: 'Release to install from'
|
||||||
|
default: testing
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- name: setup apt package source
|
||||||
|
run: |
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
echo "deb http://deb.debian.org/debian/ ${RELEASE} main" > "/etc/apt/sources.list.d/${RELEASE}.list"
|
||||||
|
env:
|
||||||
|
RELEASE: ${{inputs.release}}
|
||||||
|
- name: install packages
|
||||||
|
run: |
|
||||||
|
apt-get update -qq
|
||||||
|
apt-get -q install -qq -y ${PACKAGES}
|
||||||
|
env:
|
||||||
|
PACKAGES: ${{inputs.packages}}
|
||||||
|
- name: remove temporary package list to prevent using it in other steps
|
||||||
|
run: |
|
||||||
|
rm "/etc/apt/sources.list.d/${RELEASE}.list"
|
||||||
|
apt-get update -qq
|
||||||
|
env:
|
||||||
|
RELEASE: ${{inputs.release}}
|
15
.forgejo/workflows/composite/build-backend/action.yaml
Normal file
15
.forgejo/workflows/composite/build-backend/action.yaml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- run: |
|
||||||
|
su forgejo -c 'make deps-backend'
|
||||||
|
- uses: actions/cache@v4
|
||||||
|
id: cache-backend
|
||||||
|
with:
|
||||||
|
path: '/workspace/forgejo/forgejo/gitea'
|
||||||
|
key: backend-build-${{ github.sha }}
|
||||||
|
- if: steps.cache-backend.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
su forgejo -c 'make backend'
|
||||||
|
env:
|
||||||
|
TAGS: bindata
|
11
.forgejo/workflows/composite/setup-env/action.yaml
Normal file
11
.forgejo/workflows/composite/setup-env/action.yaml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- uses: https://code.forgejo.org/actions/setup-go@v4
|
||||||
|
with:
|
||||||
|
go-version-file: "go.mod"
|
||||||
|
- name: setup user and permissions
|
||||||
|
run: |
|
||||||
|
git config --add safe.directory '*'
|
||||||
|
adduser --quiet --comment forgejo --disabled-password forgejo
|
||||||
|
chown -R forgejo:forgejo .
|
|
@ -20,19 +20,10 @@ jobs:
|
||||||
${{ toJSON(github) }}
|
${{ toJSON(github) }}
|
||||||
EOF
|
EOF
|
||||||
- uses: https://code.forgejo.org/actions/checkout@v3
|
- uses: https://code.forgejo.org/actions/checkout@v3
|
||||||
- uses: https://code.forgejo.org/actions/setup-go@v4
|
- uses: ./.forgejo/workflows/composite/setup-env
|
||||||
with:
|
- run: su forgejo -c 'make deps-backend deps-tools'
|
||||||
go-version-file: "go.mod"
|
- run: su forgejo -c 'make --always-make -j$(nproc) lint-backend tidy-check swagger-check fmt-check swagger-validate' # ensure the "go-licenses" make target runs
|
||||||
- run: make deps-backend deps-tools
|
- uses: ./.forgejo/workflows/composite/build-backend
|
||||||
- run: make --always-make -j$(nproc) lint-backend tidy-check swagger-check fmt-check swagger-validate # ensure the "go-licenses" make target runs
|
|
||||||
- run: |
|
|
||||||
make backend
|
|
||||||
env:
|
|
||||||
TAGS: bindata
|
|
||||||
- uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: '/workspace/forgejo/forgejo/gitea'
|
|
||||||
key: backend-build-${{ github.sha }}
|
|
||||||
frontend-checks:
|
frontend-checks:
|
||||||
if: ${{ !startsWith(vars.ROLE, 'forgejo-') }}
|
if: ${{ !startsWith(vars.ROLE, 'forgejo-') }}
|
||||||
runs-on: docker
|
runs-on: docker
|
||||||
|
@ -67,37 +58,16 @@ jobs:
|
||||||
MINIO_ROOT_PASSWORD: 12345678
|
MINIO_ROOT_PASSWORD: 12345678
|
||||||
steps:
|
steps:
|
||||||
- uses: https://code.forgejo.org/actions/checkout@v3
|
- uses: https://code.forgejo.org/actions/checkout@v3
|
||||||
- uses: https://code.forgejo.org/actions/setup-go@v4
|
- uses: ./.forgejo/workflows/composite/setup-env
|
||||||
with:
|
|
||||||
go-version-file: "go.mod"
|
|
||||||
- run: |
|
|
||||||
git config --add safe.directory '*'
|
|
||||||
adduser --quiet --comment forgejo --disabled-password forgejo
|
|
||||||
chown -R forgejo:forgejo .
|
|
||||||
- name: install git >= 2.42
|
- name: install git >= 2.42
|
||||||
run: |
|
uses: ./.forgejo/workflows/composite/apt-install-from
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
with:
|
||||||
echo deb http://deb.debian.org/debian/ testing main > /etc/apt/sources.list.d/testing.list
|
packages: git
|
||||||
apt-get update -qq
|
|
||||||
apt-get -q install -qq -y git
|
|
||||||
rm /etc/apt/sources.list.d/testing.list
|
|
||||||
apt-get update -qq
|
|
||||||
- name: test release-notes-assistant.sh
|
- name: test release-notes-assistant.sh
|
||||||
run: |
|
run: |
|
||||||
apt-get -q install -qq -y jq
|
apt-get -q install -qq -y jq
|
||||||
./release-notes-assistant.sh test_main
|
./release-notes-assistant.sh test_main
|
||||||
- run: |
|
- uses: ./.forgejo/workflows/composite/build-backend
|
||||||
su forgejo -c 'make deps-backend'
|
|
||||||
- uses: actions/cache/restore@v4
|
|
||||||
id: cache-backend
|
|
||||||
with:
|
|
||||||
path: '/workspace/forgejo/forgejo/gitea'
|
|
||||||
key: backend-build-${{ github.sha }}
|
|
||||||
- if: steps.cache-backend.outputs.cache-hit != 'true'
|
|
||||||
run: |
|
|
||||||
su forgejo -c 'make backend'
|
|
||||||
env:
|
|
||||||
TAGS: bindata
|
|
||||||
- run: |
|
- run: |
|
||||||
su forgejo -c 'make test-backend test-check'
|
su forgejo -c 'make test-backend test-check'
|
||||||
timeout-minutes: 50
|
timeout-minutes: 50
|
||||||
|
@ -132,33 +102,12 @@ jobs:
|
||||||
options: ${{ matrix.cacher.options }}
|
options: ${{ matrix.cacher.options }}
|
||||||
steps:
|
steps:
|
||||||
- uses: https://code.forgejo.org/actions/checkout@v3
|
- uses: https://code.forgejo.org/actions/checkout@v3
|
||||||
- uses: https://code.forgejo.org/actions/setup-go@v4
|
- uses: ./.forgejo/workflows/composite/setup-env
|
||||||
with:
|
|
||||||
go-version-file: "go.mod"
|
|
||||||
- run: |
|
|
||||||
git config --add safe.directory '*'
|
|
||||||
adduser --quiet --comment forgejo --disabled-password forgejo
|
|
||||||
chown -R forgejo:forgejo .
|
|
||||||
- name: install git >= 2.42
|
- name: install git >= 2.42
|
||||||
run: |
|
uses: ./.forgejo/workflows/composite/apt-install-from
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
|
||||||
echo deb http://deb.debian.org/debian/ testing main > /etc/apt/sources.list.d/testing.list
|
|
||||||
apt-get update -qq
|
|
||||||
apt-get -q install -qq -y git
|
|
||||||
rm /etc/apt/sources.list.d/testing.list
|
|
||||||
apt-get update -qq
|
|
||||||
- run: |
|
|
||||||
su forgejo -c 'make deps-backend'
|
|
||||||
- uses: actions/cache/restore@v4
|
|
||||||
id: cache-backend
|
|
||||||
with:
|
with:
|
||||||
path: '/workspace/forgejo/forgejo/gitea'
|
packages: git
|
||||||
key: backend-build-${{ github.sha }}
|
- uses: ./.forgejo/workflows/composite/build-backend
|
||||||
- if: steps.cache-backend.outputs.cache-hit != 'true'
|
|
||||||
run: |
|
|
||||||
su forgejo -c 'make backend'
|
|
||||||
env:
|
|
||||||
TAGS: bindata
|
|
||||||
- run: |
|
- run: |
|
||||||
su forgejo -c 'make test-remote-cacher test-check'
|
su forgejo -c 'make test-remote-cacher test-check'
|
||||||
timeout-minutes: 50
|
timeout-minutes: 50
|
||||||
|
@ -184,34 +133,12 @@ jobs:
|
||||||
MYSQL_EXTRA_FLAGS: --innodb-adaptive-flushing=OFF --innodb-buffer-pool-size=4G --innodb-log-buffer-size=128M --innodb-flush-log-at-trx-commit=0 --innodb-flush-log-at-timeout=30 --innodb-flush-method=nosync --innodb-fsync-threshold=1000000000
|
MYSQL_EXTRA_FLAGS: --innodb-adaptive-flushing=OFF --innodb-buffer-pool-size=4G --innodb-log-buffer-size=128M --innodb-flush-log-at-trx-commit=0 --innodb-flush-log-at-timeout=30 --innodb-flush-method=nosync --innodb-fsync-threshold=1000000000
|
||||||
steps:
|
steps:
|
||||||
- uses: https://code.forgejo.org/actions/checkout@v3
|
- uses: https://code.forgejo.org/actions/checkout@v3
|
||||||
- uses: https://code.forgejo.org/actions/setup-go@v4
|
- uses: ./.forgejo/workflows/composite/setup-env
|
||||||
with:
|
|
||||||
go-version-file: "go.mod"
|
|
||||||
- name: install dependencies & git >= 2.42
|
- name: install dependencies & git >= 2.42
|
||||||
run: |
|
uses: ./.forgejo/workflows/composite/apt-install-from
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
|
||||||
echo deb http://deb.debian.org/debian/ testing main > /etc/apt/sources.list.d/testing.list
|
|
||||||
apt-get update -qq
|
|
||||||
apt-get install --no-install-recommends -qq -y git git-lfs
|
|
||||||
rm /etc/apt/sources.list.d/testing.list
|
|
||||||
apt-get update -qq
|
|
||||||
- name: setup user and permissions
|
|
||||||
run: |
|
|
||||||
git config --add safe.directory '*'
|
|
||||||
adduser --quiet --comment forgejo --disabled-password forgejo
|
|
||||||
chown -R forgejo:forgejo .
|
|
||||||
- run: |
|
|
||||||
su forgejo -c 'make deps-backend'
|
|
||||||
- uses: actions/cache/restore@v4
|
|
||||||
id: cache-backend
|
|
||||||
with:
|
with:
|
||||||
path: '/workspace/forgejo/forgejo/gitea'
|
packages: git git-lfs
|
||||||
key: backend-build-${{ github.sha }}
|
- uses: ./.forgejo/workflows/composite/build-backend
|
||||||
- if: steps.cache-backend.outputs.cache-hit != 'true'
|
|
||||||
run: |
|
|
||||||
su forgejo -c 'make backend'
|
|
||||||
env:
|
|
||||||
TAGS: bindata
|
|
||||||
- run: |
|
- run: |
|
||||||
su forgejo -c 'make test-mysql-migration test-mysql'
|
su forgejo -c 'make test-mysql-migration test-mysql'
|
||||||
timeout-minutes: 50
|
timeout-minutes: 50
|
||||||
|
@ -238,34 +165,12 @@ jobs:
|
||||||
POSTGRES_PASSWORD: postgres
|
POSTGRES_PASSWORD: postgres
|
||||||
steps:
|
steps:
|
||||||
- uses: https://code.forgejo.org/actions/checkout@v3
|
- uses: https://code.forgejo.org/actions/checkout@v3
|
||||||
- uses: https://code.forgejo.org/actions/setup-go@v4
|
- uses: ./.forgejo/workflows/composite/setup-env
|
||||||
with:
|
|
||||||
go-version-file: "go.mod"
|
|
||||||
- name: install dependencies & git >= 2.42
|
- name: install dependencies & git >= 2.42
|
||||||
run: |
|
uses: ./.forgejo/workflows/composite/apt-install-from
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
|
||||||
echo deb http://deb.debian.org/debian/ testing main > /etc/apt/sources.list.d/testing.list
|
|
||||||
apt-get update -qq
|
|
||||||
apt-get install --no-install-recommends -qq -y git git-lfs
|
|
||||||
rm /etc/apt/sources.list.d/testing.list
|
|
||||||
apt-get update -qq
|
|
||||||
- name: setup user and permissions
|
|
||||||
run: |
|
|
||||||
git config --add safe.directory '*'
|
|
||||||
adduser --quiet --comment forgejo --disabled-password forgejo
|
|
||||||
chown -R forgejo:forgejo .
|
|
||||||
- run: |
|
|
||||||
su forgejo -c 'make deps-backend'
|
|
||||||
- uses: actions/cache/restore@v4
|
|
||||||
id: cache-backend
|
|
||||||
with:
|
with:
|
||||||
path: '/workspace/forgejo/forgejo/gitea'
|
packages: git git-lfs
|
||||||
key: backend-build-${{ github.sha }}
|
- uses: ./.forgejo/workflows/composite/build-backend
|
||||||
- if: steps.cache-backend.outputs.cache-hit != 'true'
|
|
||||||
run: |
|
|
||||||
su forgejo -c 'make backend'
|
|
||||||
env:
|
|
||||||
TAGS: bindata
|
|
||||||
- run: |
|
- run: |
|
||||||
su forgejo -c 'make test-pgsql-migration test-pgsql'
|
su forgejo -c 'make test-pgsql-migration test-pgsql'
|
||||||
timeout-minutes: 50
|
timeout-minutes: 50
|
||||||
|
@ -281,34 +186,12 @@ jobs:
|
||||||
image: 'code.forgejo.org/oci/node:20-bookworm'
|
image: 'code.forgejo.org/oci/node:20-bookworm'
|
||||||
steps:
|
steps:
|
||||||
- uses: https://code.forgejo.org/actions/checkout@v3
|
- uses: https://code.forgejo.org/actions/checkout@v3
|
||||||
- uses: https://code.forgejo.org/actions/setup-go@v4
|
- uses: ./.forgejo/workflows/composite/setup-env
|
||||||
with:
|
|
||||||
go-version-file: "go.mod"
|
|
||||||
- name: install dependencies & git >= 2.42
|
- name: install dependencies & git >= 2.42
|
||||||
run: |
|
uses: ./.forgejo/workflows/composite/apt-install-from
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
|
||||||
echo deb http://deb.debian.org/debian/ testing main > /etc/apt/sources.list.d/testing.list
|
|
||||||
apt-get update -qq
|
|
||||||
apt-get install --no-install-recommends -qq -y git git-lfs
|
|
||||||
rm /etc/apt/sources.list.d/testing.list
|
|
||||||
apt-get update -qq
|
|
||||||
- name: setup user and permissions
|
|
||||||
run: |
|
|
||||||
git config --add safe.directory '*'
|
|
||||||
adduser --quiet --comment forgejo --disabled-password forgejo
|
|
||||||
chown -R forgejo:forgejo .
|
|
||||||
- run: |
|
|
||||||
su forgejo -c 'make deps-backend'
|
|
||||||
- uses: actions/cache/restore@v4
|
|
||||||
id: cache-backend
|
|
||||||
with:
|
with:
|
||||||
path: '/workspace/forgejo/forgejo/gitea'
|
packages: git git-lfs
|
||||||
key: backend-build-${{ github.sha }}
|
- uses: ./.forgejo/workflows/composite/build-backend
|
||||||
- if: steps.cache-backend.outputs.cache-hit != 'true'
|
|
||||||
run: |
|
|
||||||
su forgejo -c 'make backend'
|
|
||||||
env:
|
|
||||||
TAGS: bindata sqlite sqlite_unlock_notify
|
|
||||||
- run: |
|
- run: |
|
||||||
su forgejo -c 'make test-sqlite-migration test-sqlite'
|
su forgejo -c 'make test-sqlite-migration test-sqlite'
|
||||||
timeout-minutes: 50
|
timeout-minutes: 50
|
||||||
|
@ -330,8 +213,6 @@ jobs:
|
||||||
image: 'code.forgejo.org/oci/node:20-bookworm'
|
image: 'code.forgejo.org/oci/node:20-bookworm'
|
||||||
steps:
|
steps:
|
||||||
- uses: https://code.forgejo.org/actions/checkout@v3
|
- uses: https://code.forgejo.org/actions/checkout@v3
|
||||||
- uses: https://code.forgejo.org/actions/setup-go@v4
|
- uses: ./.forgejo/workflows/composite/setup-env
|
||||||
with:
|
|
||||||
go-version-file: "go.mod"
|
|
||||||
- run: make deps-backend deps-tools
|
- run: make deps-backend deps-tools
|
||||||
- run: make security-check
|
- run: make security-check
|
||||||
|
|
Loading…
Reference in a new issue