generated from deepin-community/template-repository-main
更新 .github/workflows/main.yml
Some checks failed
Build and Package Golang / build (push) Failing after 6m7s
Some checks failed
Build and Package Golang / build (push) Failing after 6m7s
This commit is contained in:
93
.github/workflows/main.yml
vendored
93
.github/workflows/main.yml
vendored
@ -1,8 +1,52 @@
|
||||
- name: Build .deb package
|
||||
name: Build and Package Golang
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
# Checkout the source code
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
# Install required dependencies
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
mkdir -p build/DEBIAN
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y debhelper dh-golang build-essential wget
|
||||
|
||||
# Download Go bootstrap
|
||||
- name: Download Go Bootstrap
|
||||
run: |
|
||||
wget https://go.dev/dl/go1.22.6.linux-amd64.tar.gz
|
||||
tar -C /usr/local -xzf go1.22.6.linux-amd64.tar.gz
|
||||
mv /usr/local/go /usr/local/go-bootstrap
|
||||
|
||||
# Compile Go from source
|
||||
- name: Compile Golang from source
|
||||
run: |
|
||||
export GOROOT_BOOTSTRAP=/usr/local/go-bootstrap
|
||||
cd src
|
||||
./make.bash
|
||||
cd ..
|
||||
|
||||
# Prepare .deb package structure and files
|
||||
- name: Prepare .deb package structure
|
||||
run: |
|
||||
mkdir -p build/usr/local/go
|
||||
find . -maxdepth 1 -mindepth 1 ! -name 'build' -exec cp -r {} build/usr/local/go/ \;
|
||||
|
||||
# 编写控制文件
|
||||
mkdir -p build/DEBIAN
|
||||
echo "2.0" > debian-binary
|
||||
|
||||
cat <<EOF > build/DEBIAN/control
|
||||
Package: golang
|
||||
Version: 1.22.6-1
|
||||
@ -16,18 +60,51 @@
|
||||
to build simple, reliable, and efficient software.
|
||||
EOF
|
||||
|
||||
# 创建 data.tar.gz
|
||||
mkdir -p build/usr/local/go
|
||||
find . -maxdepth 1 -mindepth 1 ! -name 'build' -exec cp -r {} build/usr/local/go/ \;
|
||||
# Create data.tar.gz
|
||||
tar -czf data.tar.gz -C build/usr .
|
||||
|
||||
# 创建 control.tar.gz
|
||||
# Create control.tar.gz
|
||||
tar -czf control.tar.gz -C build/DEBIAN .
|
||||
|
||||
# 创建最终的 .deb 文件
|
||||
# Build the .deb package
|
||||
ar rcs golang_1.22.6-1_amd64.deb debian-binary control.tar.gz data.tar.gz
|
||||
|
||||
# Verify the .deb package
|
||||
- name: Verify .deb package
|
||||
run: |
|
||||
dpkg --info golang_1.22.6-1_amd64.deb
|
||||
dpkg --contents golang_1.22.6-1_amd64.deb
|
||||
|
||||
# Upload the package as an artifact
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: golang-package
|
||||
path: golang_1.22.6-1_amd64.deb
|
||||
|
||||
# Upload the package to Gitea's Debian registry
|
||||
- name: Upload Debian Package to Gitea
|
||||
run: |
|
||||
PACKAGE_FILE="golang_1.22.6-1_amd64.deb"
|
||||
OWNER="deepin-community"
|
||||
GITEA_API_URL="http://192.168.9.154:3000/api/packages/${OWNER}/debian/pool/main"
|
||||
|
||||
if [ ! -f "$PACKAGE_FILE" ]; then
|
||||
echo "Error: Package file $PACKAGE_FILE not found."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Uploading $PACKAGE_FILE to Gitea..."
|
||||
|
||||
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" -X PUT \
|
||||
-H "Authorization: token ${{ secrets.GITEA2_TOKEN }}" \
|
||||
-H "Content-Type: application/vnd.debian.binary-package" \
|
||||
--data-binary @"$PACKAGE_FILE" \
|
||||
"$GITEA_API_URL")
|
||||
|
||||
if [ "$RESPONSE" -eq 201 ]; then
|
||||
echo "Package uploaded successfully!"
|
||||
else
|
||||
echo "Error: Failed to upload package. HTTP response code: $RESPONSE"
|
||||
exit 1
|
||||
fi
|
||||
|
Reference in New Issue
Block a user