Merge pull request '[RELEASE] copy the release to forgejo-experimental if tests pass' (#2377) from earl-warren/forgejo:wip-test-release into forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/2377
This commit is contained in:
commit
ad79ba6a00
5 changed files with 47 additions and 9 deletions
|
@ -71,7 +71,6 @@ cpu.out
|
||||||
/tests/e2e/test-artifacts
|
/tests/e2e/test-artifacts
|
||||||
/tests/e2e/test-snapshots
|
/tests/e2e/test-snapshots
|
||||||
/tests/*.ini
|
/tests/*.ini
|
||||||
/node_modules
|
|
||||||
/yarn.lock
|
/yarn.lock
|
||||||
/yarn-error.log
|
/yarn-error.log
|
||||||
/npm-debug.log*
|
/npm-debug.log*
|
||||||
|
|
|
@ -110,7 +110,7 @@ jobs:
|
||||||
#
|
#
|
||||||
# Push a commit to a branch that triggers the build of a test release
|
# Push a commit to a branch that triggers the build of a test release
|
||||||
#
|
#
|
||||||
version=forgejo-test
|
version=0.0-test
|
||||||
(
|
(
|
||||||
git clone $url/root/forgejo /tmp/forgejo
|
git clone $url/root/forgejo /tmp/forgejo
|
||||||
cd /tmp/forgejo
|
cd /tmp/forgejo
|
||||||
|
|
|
@ -14,8 +14,6 @@
|
||||||
# secrets.CASCADE_DESTINATION_TOKEN: <generated from code.forgejo.org/forgejo-ci> scope read:user, write:repository, write:issue
|
# secrets.CASCADE_DESTINATION_TOKEN: <generated from code.forgejo.org/forgejo-ci> scope read:user, write:repository, write:issue
|
||||||
# vars.CASCADE_DESTINATION_DOER: forgejo-ci
|
# vars.CASCADE_DESTINATION_DOER: forgejo-ci
|
||||||
#
|
#
|
||||||
name: Build release
|
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
tags: 'v[0-9]+.[0-9]+.*'
|
tags: 'v[0-9]+.[0-9]+.*'
|
||||||
|
@ -30,6 +28,8 @@ jobs:
|
||||||
if: vars.ROLE == 'forgejo-integration' || github.repository_owner == 'root'
|
if: vars.ROLE == 'forgejo-integration' || github.repository_owner == 'root'
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Sanitize the name of the repository
|
- name: Sanitize the name of the repository
|
||||||
id: repository
|
id: repository
|
||||||
|
@ -53,8 +53,12 @@ jobs:
|
||||||
set -x
|
set -x
|
||||||
ref="${{ github.ref }}"
|
ref="${{ github.ref }}"
|
||||||
if [[ $ref =~ ^refs/heads/ ]] ; then
|
if [[ $ref =~ ^refs/heads/ ]] ; then
|
||||||
|
if test "$ref" = "refs/heads/forgejo" ; then
|
||||||
|
version=0.0-test
|
||||||
|
else
|
||||||
version=${ref#refs/heads/}
|
version=${ref#refs/heads/}
|
||||||
version=${version%/forgejo}-test
|
version=${version%/forgejo}-test
|
||||||
|
fi
|
||||||
override=true
|
override=true
|
||||||
fi
|
fi
|
||||||
if [[ $ref =~ ^refs/tags/ ]] ; then
|
if [[ $ref =~ ^refs/tags/ ]] ; then
|
||||||
|
@ -66,6 +70,7 @@ jobs:
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
version=${version#v}
|
version=${version#v}
|
||||||
|
git describe --tags --always
|
||||||
echo "sha=${{ github.sha }}" >> "$GITHUB_OUTPUT"
|
echo "sha=${{ github.sha }}" >> "$GITHUB_OUTPUT"
|
||||||
echo "version=$version" >> "$GITHUB_OUTPUT"
|
echo "version=$version" >> "$GITHUB_OUTPUT"
|
||||||
echo "override=$override" >> "$GITHUB_OUTPUT"
|
echo "override=$override" >> "$GITHUB_OUTPUT"
|
||||||
|
@ -81,6 +86,18 @@ jobs:
|
||||||
ENDVAR
|
ENDVAR
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
- name: cache node_modules
|
||||||
|
id: node
|
||||||
|
uses: https://code.forgejo.org/actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
node_modules
|
||||||
|
key: node-${{ steps.release-info.outputs.version }}
|
||||||
|
|
||||||
|
- name: skip if node cache hit
|
||||||
|
if: steps.node.outputs.cache-hit != 'true'
|
||||||
|
run: echo no hit
|
||||||
|
|
||||||
- name: Build sources
|
- name: Build sources
|
||||||
run: |
|
run: |
|
||||||
set -x
|
set -x
|
||||||
|
@ -177,7 +194,7 @@ jobs:
|
||||||
|
|
||||||
- name: end-to-end tests
|
- name: end-to-end tests
|
||||||
if: ${{ secrets.TOKEN != '' && vars.ROLE == 'forgejo-integration' }}
|
if: ${{ secrets.TOKEN != '' && vars.ROLE == 'forgejo-integration' }}
|
||||||
uses: https://code.forgejo.org/actions/cascading-pr@v1
|
uses: https://code.forgejo.org/actions/cascading-pr@v2
|
||||||
with:
|
with:
|
||||||
origin-url: ${{ env.GITHUB_SERVER_URL }}
|
origin-url: ${{ env.GITHUB_SERVER_URL }}
|
||||||
origin-repo: ${{ github.repository }}
|
origin-repo: ${{ github.repository }}
|
||||||
|
@ -191,3 +208,25 @@ jobs:
|
||||||
update: .forgejo/cascading-release-end-to-end
|
update: .forgejo/cascading-release-end-to-end
|
||||||
env:
|
env:
|
||||||
FORGEJO_BINARY: "${{ env.GITHUB_SERVER_URL }}/${{ github.repository }}/releases/download/v${{ steps.release-info.outputs.version }}/forgejo-${{ steps.release-info.outputs.version }}-linux-amd64"
|
FORGEJO_BINARY: "${{ env.GITHUB_SERVER_URL }}/${{ github.repository }}/releases/download/v${{ steps.release-info.outputs.version }}/forgejo-${{ steps.release-info.outputs.version }}-linux-amd64"
|
||||||
|
|
||||||
|
- name: copy to experimental
|
||||||
|
if: vars.ROLE == 'forgejo-integration' && secrets.TOKEN != ''
|
||||||
|
run: |
|
||||||
|
if test "${{ vars.VERBOSE }}" = true ; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
tag=v${{ steps.release-info.outputs.version }}
|
||||||
|
url=https://any:${{ secrets.TOKEN }}@codeberg.org
|
||||||
|
if test "${{ steps.release-info.outputs.override }}" = "true" ; then
|
||||||
|
curl -sS -X DELETE $url/api/v1/repos/forgejo-experimental/forgejo/releases/tags/$tag > /dev/null
|
||||||
|
curl -sS -X DELETE $url/api/v1/repos/forgejo-experimental/forgejo/tags/$tag > /dev/null
|
||||||
|
fi
|
||||||
|
# actions/checkout@v3 sets http.https://codeberg.org/.extraheader with the automatic token.
|
||||||
|
# Get rid of it so it does not prevent using the token that has write permissions
|
||||||
|
git config --local --unset http.https://codeberg.org/.extraheader
|
||||||
|
if test -f .git/shallow ; then
|
||||||
|
echo "unexptected .git/shallow file is present"
|
||||||
|
echo "it suggests a checkout --depth X was used which may prevent pushing the commit"
|
||||||
|
echo "it happens when actions/checkout is called without depth: 0"
|
||||||
|
fi
|
||||||
|
git push $url/forgejo-experimental/forgejo ${{ steps.release-info.outputs.sha }}:refs/tags/$tag
|
||||||
|
|
|
@ -33,7 +33,7 @@ RUN apk --no-cache add build-base git nodejs npm
|
||||||
COPY . ${GOPATH}/src/code.gitea.io/gitea
|
COPY . ${GOPATH}/src/code.gitea.io/gitea
|
||||||
WORKDIR ${GOPATH}/src/code.gitea.io/gitea
|
WORKDIR ${GOPATH}/src/code.gitea.io/gitea
|
||||||
|
|
||||||
RUN make clean-all
|
RUN make clean
|
||||||
RUN make frontend
|
RUN make frontend
|
||||||
RUN go build contrib/environment-to-ini/environment-to-ini.go && xx-verify environment-to-ini
|
RUN go build contrib/environment-to-ini/environment-to-ini.go && xx-verify environment-to-ini
|
||||||
RUN make RELEASE_VERSION=$RELEASE_VERSION go-check generate-backend static-executable && xx-verify gitea
|
RUN make RELEASE_VERSION=$RELEASE_VERSION go-check generate-backend static-executable && xx-verify gitea
|
||||||
|
|
|
@ -33,7 +33,7 @@ RUN apk --no-cache add build-base git nodejs npm
|
||||||
COPY . ${GOPATH}/src/code.gitea.io/gitea
|
COPY . ${GOPATH}/src/code.gitea.io/gitea
|
||||||
WORKDIR ${GOPATH}/src/code.gitea.io/gitea
|
WORKDIR ${GOPATH}/src/code.gitea.io/gitea
|
||||||
|
|
||||||
RUN make clean-all
|
RUN make clean
|
||||||
RUN make frontend
|
RUN make frontend
|
||||||
RUN go build contrib/environment-to-ini/environment-to-ini.go && xx-verify environment-to-ini
|
RUN go build contrib/environment-to-ini/environment-to-ini.go && xx-verify environment-to-ini
|
||||||
RUN make RELEASE_VERSION=$RELEASE_VERSION go-check generate-backend static-executable && xx-verify gitea
|
RUN make RELEASE_VERSION=$RELEASE_VERSION go-check generate-backend static-executable && xx-verify gitea
|
||||||
|
|
Loading…
Reference in a new issue