Files
hello_gitea/.gitea/workflows/build.yaml
Anton Kuznetcov dd3de165f7
All checks were successful
Release Build / create-release-branch (push) Successful in 8s
Release v1.0.27
2025-07-28 11:46:04 +06:00

169 lines
6.4 KiB
YAML

name: Release Build
on:
push:
tags:
- v*
jobs:
# create-release:
# runs-on: ubuntu-latest
# container:
# # image: golang:1.21
# image: ${{ secrets.DOCKERHUB_USERNAME }}/my-build-golang-runner:latest
# needs: create-release-branch
# steps:
# - name: Checkout repository
# run: |
# git clone https://oauth2:${{ secrets.GITEATOKEN }}@direct-dev.ru/gitea/GiteaAdmin/hello_gitea.git hello_gitea
# cd hello_gitea
# git checkout ${{ github.ref }}
# - name: Setup Go
# run: |
# # Install jq for JSON parsing
# apt-get update && apt-get install -y jq
# git --version
# go version
# jq --version
# - name: Build all binaries
# run: |
# cd hello_gitea
# mkdir -p bin
# # Build for all platforms
# GOOS=linux GOARCH=amd64 go build -o bin/hello-api-linux-amd64 main.go
# GOOS=linux GOARCH=arm64 go build -o bin/hello-api-linux-arm64 main.go
# GOOS=windows GOARCH=amd64 go build -o bin/hello-api-windows-amd64.exe main.go
# GOOS=darwin GOARCH=amd64 go build -o bin/hello-api-darwin-amd64 main.go
# GOOS=darwin GOARCH=arm64 go build -o bin/hello-api-darwin-arm64 main.go
# # Create archives
# cd bin
# tar -czf hello-api-linux-amd64.tar.gz hello-api-linux-amd64
# tar -czf hello-api-linux-arm64.tar.gz hello-api-linux-arm64
# tar -czf hello-api-windows-amd64.tar.gz hello-api-windows-amd64.exe
# tar -czf hello-api-darwin-amd64.tar.gz hello-api-darwin-amd64
# tar -czf hello-api-darwin-arm64.tar.gz hello-api-darwin-arm64
# ls -la
# - name: Create Release
# run: |
# cd hello_gitea
# # Create release using Gitea API
# curl -X POST \
# -H "Authorization: token ${{ secrets.GITEATOKEN }}" \
# -H "Content-Type: application/json" \
# -d '{
# "tag_name": "${{ github.ref_name }}",
# "name": "Release ${{ github.ref_name }}",
# "body": "Automated release with multi-platform binaries and Docker image",
# "draft": false,
# "prerelease": false
# }' \
# "https://direct-dev.ru/gitea/api/v1/repos/GiteaAdmin/hello_gitea/releases"
# # Upload assets
# RELEASE_ID=$(curl -s -H "Authorization: token ${{ secrets.GITEATOKEN }}" \
# "https://direct-dev.ru/gitea/api/v1/repos/GiteaAdmin/hello_gitea/releases/tags/${{ github.ref_name }}" | \
# jq -r '.id')
# # Upload all binaries
# for file in bin/*.tar.gz; do
# echo "Uploading $file..."
# curl -X POST \
# -H "Authorization: token ${{ secrets.GITEATOKEN }}" \
# -H "Content-Type: application/octet-stream" \
# --data-binary @$file \
# "https://direct-dev.ru/gitea/api/v1/repos/GiteaAdmin/hello_gitea/releases/$RELEASE_ID/assets?name=$(basename $file)"
# done
# create-docker-image:
# runs-on: ubuntu-latest
# container:
# image: docker:28.3.2-dind
# needs: create-release
# steps:
# - name: Checkout repository
# run: |
# # Install git
# apk add --no-cache git
# echo "=== GitHub Variables ==="
# echo "github.ref = ${{ github.ref }}"
# echo "github.ref_name = ${{ github.ref_name }}"
# echo "github.sha = ${{ github.sha }}"
# echo "github.repository = ${{ github.repository }}"
# echo "========================"
# git clone https://oauth2:${{ secrets.GITEATOKEN }}@direct-dev.ru/gitea/GiteaAdmin/hello_gitea.git hello_gitea
# cd hello_gitea
# git checkout ${{ github.ref }}
# - name: Setup Docker Buildx
# run: |
# # Docker is already installed in docker:dind image
# docker --version
# # Setup Docker Buildx for multi-platform builds
# docker buildx create --use
# docker buildx inspect --bootstrap
# - name: Login to Docker Hub
# run: |
# echo ${{ secrets.DOCKERHUB_TOKEN }} | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin
# - name: Build multi-platform Docker images
# run: |
# cd hello_gitea
# # Build multi-platform images using buildx
# docker buildx build \
# --platform linux/amd64,linux/arm64 \
# --tag ${{ secrets.DOCKERHUB_USERNAME }}/hello-api:${{ github.ref_name }} \
# --tag ${{ secrets.DOCKERHUB_USERNAME }}/hello-api:latest \
# --push \
# .
create-release-branch:
runs-on: ubuntu-latest
container:
image: docker:28.3.2-dind
# needs: create-docker-image
steps:
- name: Create Release Branch
run: |
echo "=== GitHub Variables ==="
echo "github.ref = ${{ github.ref }}"
echo "github.ref_name = ${{ github.ref_name }}"
echo "github.sha = ${{ github.sha }}"
echo "github.repository = ${{ github.repository }}"
echo "========================"
# Clone repository
echo "Cloning repository..."
git clone https://oauth2:${{ secrets.GITEATOKEN }}@direct-dev.ru/gitea/GiteaAdmin/hello_gitea.git hello_gitea
cd hello_gitea
# Configure git
echo "Configuring git..."
git config user.email "info@direct-dev.ru"
git config user.name "Direct-Dev-Robot"
# Check if release branch exists
echo "Checking if release branch exists..."
if git ls-remote --heads origin release | grep -q release; then
echo "Release branch exists, checking out..."
git checkout release
echo "release branch exists - pulling release branch..."
git pull origin release
else
echo "release branch does not exist - creating new release branch..."
git checkout -b release
fi
# Reset to the tag commit
echo "Resetting to the tag commit ${{ github.ref_name }} ..."
git reset --hard ${{ github.ref_name }}
# Push changes to release branch
echo "Pushing changes to release branch..."
git push origin release --force