2023-10-11 09:39:32 +03:00
name : release-nightly
2023-06-16 20:00:39 +03:00
on :
push :
2023-10-30 10:56:43 +03:00
branches : [ main, release/v*]
2023-06-16 20:00:39 +03:00
2023-09-12 20:33:45 +03:00
concurrency :
2023-09-13 17:43:03 +03:00
group : ${{ github.workflow }}-${{ github.ref }}
2023-09-12 20:33:45 +03:00
cancel-in-progress : true
2023-06-16 20:00:39 +03:00
jobs :
nightly-binary :
2024-12-12 20:02:59 +03:00
runs-on : namespace-profile-gitea-release-binary
2023-06-16 20:00:39 +03:00
steps :
2023-09-16 18:06:27 +03:00
- uses : actions/checkout@v4
2023-06-16 20:00:39 +03:00
# fetch all commits instead of only the last as some branches are long lived and could have many between versions
# fetch all tags to ensure that "git describe" reports expected Gitea version, eg. v1.21.0-dev-1-g1234567
- run : git fetch --unshallow --quiet --tags --force
2023-12-21 08:31:04 +03:00
- uses : actions/setup-go@v5
2023-06-16 20:00:39 +03:00
with :
2023-10-17 13:24:54 +03:00
go-version-file : go.mod
2023-06-16 20:00:39 +03:00
check-latest : true
2023-10-30 10:56:43 +03:00
- uses : actions/setup-node@v4
2023-06-16 20:00:39 +03:00
with :
2024-11-14 00:39:55 +03:00
node-version : 22
2024-04-19 06:29:08 +03:00
cache : npm
cache-dependency-path : package-lock.json
2023-06-16 20:00:39 +03:00
- run : make deps-frontend deps-backend
# xgo build
- run : make release
env :
TAGS : bindata sqlite sqlite_unlock_notify
- name : import gpg key
id : import_gpg
2023-10-30 10:56:43 +03:00
uses : crazy-max/ghaction-import-gpg@v6
2023-06-16 20:00:39 +03:00
with :
gpg_private_key : ${{ secrets.GPGSIGN_KEY }}
passphrase : ${{ secrets.GPGSIGN_PASSPHRASE }}
- name : sign binaries
run : |
for f in dist/release/*; do
echo '${{ secrets.GPGSIGN_PASSPHRASE }}' | gpg --pinentry-mode loopback --passphrase-fd 0 --batch --yes --detach-sign -u ${{ steps.import_gpg.outputs.fingerprint }} --output "$f.asc" "$f"
done
# clean branch name to get the folder name in S3
- name : Get cleaned branch name
id : clean_name
run : |
REF_NAME=$(echo "${{ github.ref }}" | sed -e 's/refs\/heads\///' -e 's/refs\/tags\///' -e 's/release\/v//')
echo "Cleaned name is ${REF_NAME}"
2024-05-23 02:34:52 +03:00
echo "branch=${REF_NAME}-nightly" >> "$GITHUB_OUTPUT"
2023-10-09 13:12:19 +03:00
- name : configure aws
uses : aws-actions/configure-aws-credentials@v4
with :
aws-region : ${{ secrets.AWS_REGION }}
aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
2023-06-16 20:00:39 +03:00
- name : upload binaries to s3
2023-10-09 13:12:19 +03:00
run : |
aws s3 sync dist/release s3://${{ secrets.AWS_S3_BUCKET }}/gitea/${{ steps.clean_name.outputs.branch }} --no-progress
2023-09-12 20:33:45 +03:00
nightly-docker-rootful :
2024-12-12 20:02:59 +03:00
runs-on : namespace-profile-gitea-release-docker
2023-06-16 20:00:39 +03:00
steps :
2023-09-16 18:06:27 +03:00
- uses : actions/checkout@v4
2023-06-19 21:51:35 +03:00
# fetch all commits instead of only the last as some branches are long lived and could have many between versions
# fetch all tags to ensure that "git describe" reports expected Gitea version, eg. v1.21.0-dev-1-g1234567
- run : git fetch --unshallow --quiet --tags --force
2023-12-21 08:31:04 +03:00
- uses : actions/setup-go@v5
2023-09-12 20:36:15 +03:00
with :
2023-10-17 13:24:54 +03:00
go-version-file : go.mod
2023-09-12 20:36:15 +03:00
check-latest : true
2023-10-30 10:56:43 +03:00
- uses : docker/setup-qemu-action@v3
- uses : docker/setup-buildx-action@v3
2023-06-18 08:04:23 +03:00
- name : Get cleaned branch name
id : clean_name
run : |
# if main then say nightly otherwise cleanup name
if [ "${{ github.ref }}" = "refs/heads/main" ]; then
echo "branch=nightly" >> "$GITHUB_OUTPUT"
exit 0
fi
REF_NAME=$(echo "${{ github.ref }}" | sed -e 's/refs\/heads\///' -e 's/refs\/tags\///' -e 's/release\/v//')
echo "branch=${REF_NAME}-nightly" >> "$GITHUB_OUTPUT"
- name : Login to Docker Hub
2023-10-30 10:56:43 +03:00
uses : docker/login-action@v3
2023-06-18 08:04:23 +03:00
with :
username : ${{ secrets.DOCKERHUB_USERNAME }}
password : ${{ secrets.DOCKERHUB_TOKEN }}
2023-09-12 20:33:45 +03:00
- name : fetch go modules
run : make vendor
2023-06-18 08:04:23 +03:00
- name : build rootful docker image
2023-10-30 10:56:43 +03:00
uses : docker/build-push-action@v5
2023-06-18 08:04:23 +03:00
with :
2023-06-20 08:37:32 +03:00
context : .
2023-06-18 08:04:23 +03:00
platforms : linux/amd64,linux/arm64
push : true
tags : gitea/gitea:${{ steps.clean_name.outputs.branch }}
2023-09-12 20:33:45 +03:00
nightly-docker-rootless :
2024-12-12 20:02:59 +03:00
runs-on : namespace-profile-gitea-release-docker
2023-09-12 20:33:45 +03:00
steps :
2023-09-16 18:06:27 +03:00
- uses : actions/checkout@v4
2023-09-12 20:33:45 +03:00
# fetch all commits instead of only the last as some branches are long lived and could have many between versions
# fetch all tags to ensure that "git describe" reports expected Gitea version, eg. v1.21.0-dev-1-g1234567
- run : git fetch --unshallow --quiet --tags --force
2023-12-21 08:31:04 +03:00
- uses : actions/setup-go@v5
2023-09-12 20:36:15 +03:00
with :
2023-10-17 13:24:54 +03:00
go-version-file : go.mod
2023-09-12 20:36:15 +03:00
check-latest : true
2023-10-30 10:56:43 +03:00
- uses : docker/setup-qemu-action@v3
- uses : docker/setup-buildx-action@v3
2023-09-12 20:33:45 +03:00
- name : Get cleaned branch name
id : clean_name
run : |
# if main then say nightly otherwise cleanup name
if [ "${{ github.ref }}" = "refs/heads/main" ]; then
echo "branch=nightly" >> "$GITHUB_OUTPUT"
exit 0
fi
REF_NAME=$(echo "${{ github.ref }}" | sed -e 's/refs\/heads\///' -e 's/refs\/tags\///' -e 's/release\/v//')
echo "branch=${REF_NAME}-nightly" >> "$GITHUB_OUTPUT"
- name : Login to Docker Hub
2023-10-30 10:56:43 +03:00
uses : docker/login-action@v3
2023-09-12 20:33:45 +03:00
with :
username : ${{ secrets.DOCKERHUB_USERNAME }}
password : ${{ secrets.DOCKERHUB_TOKEN }}
- name : fetch go modules
run : make vendor
2023-06-18 08:04:23 +03:00
- name : build rootless docker image
2023-10-30 10:56:43 +03:00
uses : docker/build-push-action@v5
2023-06-18 08:04:23 +03:00
with :
2023-06-20 08:37:32 +03:00
context : .
2023-06-18 08:04:23 +03:00
platforms : linux/amd64,linux/arm64
push : true
file : Dockerfile.rootless
tags : gitea/gitea:${{ steps.clean_name.outputs.branch }}-rootless