6 Commits

Author SHA1 Message Date
3b28d2328a Add argument handling
All checks were successful
continuous-integration/drone Build is passing
2025-09-12 22:17:42 +05:30
68add3b228 minor correction
All checks were successful
continuous-integration/drone Build is passing
2025-09-07 16:59:06 +05:30
8ec6c7652a use alpine:latest for upload artifacts
All checks were successful
continuous-integration/drone Build is passing
2025-09-07 16:53:34 +05:30
fc542ba388 simplify upload-artifacts
Some checks failed
continuous-integration/drone Build was killed
2025-09-07 16:38:58 +05:30
b32f59b708 Update .drone.yml
Some checks failed
continuous-integration/drone Build was killed
2025-09-07 16:27:46 +05:30
c4bd93992d Update .drone.yml
Some checks failed
continuous-integration/drone Build is failing
2025-09-07 16:11:20 +05:30
2 changed files with 61 additions and 47 deletions

View File

@@ -10,7 +10,7 @@ steps:
- name: clone-repo
image: alpine/git:latest
commands:
- git clone https://gitea.akshun-lab.uk/akshun/python-setup.git /artifacts
- git clone https://gitea.akshun-lab.cc/aggarwalakshun/python-setup.git /artifacts
volumes:
- name: artifacts
path: /artifacts
@@ -61,59 +61,32 @@ steps:
path: /artifacts
- name: upload-artifacts
image: alpine/curl:latest
image: alpine:latest
depends_on: [arch-build, debian-build, fedora-build]
commands:
- apk add --no-cache curl jq
- apk add jq curl
- |
if [ -z "$GITEA_TOKEN" ] || [ -z "$GITEA_SERVER" ]; then
echo "Error: GITEA_TOKEN or GITEA_SERVER not set"
exit 1
fi
# Get the latest release information
RELEASE_INFO=$(curl -s "https://gitea.akshun-lab.cc/api/v1/repos/aggarwalakshun/python-setup/releases/latest")
LATEST_TAG=$(echo "$RELEASE_INFO" | jq -r '.tag_name')
RELEASE_ID=$(echo "$RELEASE_INFO" | jq -r '.id')
REPO_PATH="${DRONE_REPO:-akshun/python-script}"
echo "Latest tag: $LATEST_TAG"
echo "Release ID: $RELEASE_ID"
if [ -n "${DRONE_TAG}" ]; then
echo "Creating release for tag ${DRONE_TAG}"
response=$(curl -s -X POST \
for file in /artifacts/*-setup; do
FILENAME=$(basename "$file")
echo "Uploading $FILENAME..."
# Use the release ID instead of tag name in the URL
curl -X POST "https://gitea.akshun-lab.cc/api/v1/repos/aggarwalakshun/python-setup/releases/$RELEASE_ID/assets?name=$FILENAME" \
-H "Authorization: token $GITEA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tag_name": "'"${DRONE_TAG}"'", "name": "'"${DRONE_TAG}"'", "body": "Automated release"}' \
"$GITEA_SERVER/api/v1/repos/$REPO_PATH/releases")
release_id=$(echo "$response" | jq -r '.id')
else
echo "Using latest release"
response=$(curl -s -H "Authorization: token $GITEA_TOKEN" \
"$GITEA_SERVER/api/v1/repos/$REPO_PATH/releases/latest" || echo "")
if [ -z "$response" ] || [ "$(echo "$response" | jq -r '.id')" = "null" ]; then
echo "Creating new draft release"
response=$(curl -s -X POST \
-H "Authorization: token $GITEA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tag_name": "continuous", "name": "Continuous Build", "draft": true, "body": "Automated continuous build"}' \
"$GITEA_SERVER/api/v1/repos/$REPO_PATH/releases")
fi
release_id=$(echo "$response" | jq -r '.id')
fi
for artifact in /artifacts/*-setup; do
if [ -f "$artifact" ]; then
filename=$(basename "$artifact")
echo "Uploading $filename"
curl -X POST \
-H "Authorization: token $GITEA_TOKEN" \
-H "Content-Type: multipart/form-data" \
-F "attachment=@$artifact" \
"$GITEA_SERVER/api/v1/repos/$REPO_PATH/releases/$release_id/assets?name=$filename"
fi
-H "Content-Type: application/octet-stream" \
--data-binary @"$file"
done
environment:
GITEA_TOKEN:
from_secret: gitea-token
GITEA_SERVER:
from_secret: gitea-server
from_secret: GITEA_TOKEN
volumes:
- name: artifacts
path: /artifacts

View File

@@ -291,4 +291,45 @@ def install_other():
for other in selected_other:
os.system(f"bash {dir}data/scripts/" + other + ".sh")
def handle_arguments():
arguments = sys.argv[1:]
if not arguments:
menu()
else:
if len(arguments) >= 2 and arguments[0] == "install":
if arguments[1] == "--system":
selected_items = arguments[2:]
if selected_items:
os.system(f"sudo dnf install -y {' '.join(selected_items)}")
else:
print("No packages specified for system install.")
elif arguments[1] == "--flatpak":
if which("flatpak") is None:
print("Flatpak is not installed. Install Flatpak? (y/n)")
choice = input()
if choice == "y":
os.system("sudo dnf install flatpak -y")
os.system("flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo")
else:
print("Exiting...")
sys.exit(0)
selected_items = arguments[2:]
if selected_items:
os.system(f"flatpak install flathub {' '.join(selected_items)} -y")
else:
print("No packages specified for flatpak install.")
elif arguments[1] == "--drivers" and len(arguments) >= 3:
if arguments[2] == "nvidia":
os.system("sudo dnf install akmod-nvidia")
elif arguments[2] == "amd":
os.system("sudo dnf install mesa-dri-drivers")
elif arguments[2] == "intel":
os.system("sudo dnf install intel-media-driver")
else:
print("Unknown driver specified.")
else:
print("Invalid install option or missing arguments.")
else:
print("Unknown command or missing arguments.")
handle_arguments()