From f63b01a858a2149c689daf457df064a9031d2113 Mon Sep 17 00:00:00 2001 From: tobid7 Date: Fri, 22 Nov 2024 11:12:19 +0100 Subject: [PATCH] Test Workflow --- .gitea/workflows/build.yaml | 75 +++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 .gitea/workflows/build.yaml diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml new file mode 100644 index 0000000..6e4ab9f --- /dev/null +++ b/.gitea/workflows/build.yaml @@ -0,0 +1,75 @@ +name: Build Bannertool +run-name: build bannertool +on: + push: + branches: + - '*' + tags: + - 'v*' + +jobs: + build-test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Install Tools + run: apt update -y && apt install -y build-essential cmake zip + - name: Build + run: | + OS=$(uname) + ARCH=$(uname -m) + cmake -B build -DCMAKE_BUILD_TYPE=Release + cmake --biuld build + mkdir -p final/$ARCH + cp -r build/bannertool final/$ARCH/ + mkdir -p artifacts/ + zip -r artifacts/$OS.zip final + - name: Upload + uses: actions/upload-artifact@v3 + with: + name: bannertool + path: artifacts/ + - name: Create Pre Release + run: | + FILES=./artifacts/* + USER=tobid7 + REPO=bannertool + # Set up variables + AUTH_HEADER="Authorization: token ${{ secrets.TOKEN }}" + CONTENT_TYPE="Content-Type: application/json" + API_URL="https://dev.npid7.de/api/v1/repos/$USER/$REPO/releases" + COMMIT_HASH=$(git rev-parse --short HEAD) + AUTHOR_NAME=$(git log -1 --pretty=format:'%an') + COMMIT_SUBJECT=$(git log -1 --pretty=format:'%s') + COMMIT_MESSAGE=$(git log -1 --pretty=format:'%b') + DATETIME=$(date +'%Y%m%d_%H%M') + echo "Create Release" + RELEASE_INFO="{\"tag_name\": \"p$DATETIME\", \"name\": \"Test | $COMMIT_HASH\", \"body\": \"$AUTHOR_NAME - $COMMIT_SUBJECT\\n\\n$COMMIT_MESSAGE\", \"prerelease\": true}" + RESPONSE=$(curl -s -X POST -H "$AUTH_HEADER" -H "$CONTENT_TYPE" -d "$RELEASE_INFO" "$API_URL") + RELEASE_ID=$(echo $RESPONSE | jq --raw-output '.id') + echo "Release created with ID: $RELEASE_ID" + if [ "$RELEASE_ID" == "null" ]; then + echo "Failed to create release." + exit 1 + fi + echo "Upload File/s" + for file in $FILES; do + if [ -f "$file" ]; then + FILE_NAME=$(basename "$file") + FILE_PATH="$file" + FILE_SIZE=$(stat -c%s "$FILE_PATH") + UPLOAD_URL="https://dev.npid7.de/api/v1/repos/$USER/$REPO/releases/$RELEASE_ID/assets?name=$FILE_NAME" + CONTENT_LENGTH="Content-Length: $FILE_SIZE" + CONTENT_TYPE="Content-Type: application/7z-x-compressed" + echo "Uploading asset: $FILE_NAME" + RESPONSE=$(curl -s -X POST -H "Authorization: token ${{ secrets.TOKEN }}" \ + -H "$CONTENT_LENGTH" -H "$CONTENT_TYPE" \ + --upload-file "$FILE_PATH" "$UPLOAD_URL") + if echo "$RESPONSE" | jq -e '.message' >/dev/null; then + echo "Error uploading $FILE_NAME: $(echo "$RESPONSE" | jq -r .message)" + exit 1 + fi + echo "Successfully uploaded $FILE_NAME" + fi + done \ No newline at end of file