Compare commits
2 Commits
v0.2.3-test8
...
v1.0.0
| Author | SHA1 | Date | |
|---|---|---|---|
| 244aa8457a | |||
| 03bcb465cf |
@@ -27,6 +27,22 @@ jobs:
|
||||
- name: Grant execute permission
|
||||
run: chmod +x ./gradlew
|
||||
|
||||
- name: Update version in assets
|
||||
run: |
|
||||
set -e
|
||||
TAG="${{ github.ref_name }}"
|
||||
# Jeśli tag jest pusty (np. push nie na tag), użyjemy skróconego SHA
|
||||
if [ -z "$TAG" ] || [ "$TAG" = "main" ]; then
|
||||
TAG=$(git rev-parse --short HEAD)
|
||||
fi
|
||||
echo "Setting version to: $TAG"
|
||||
# Aktualizacja pliku js/version.js
|
||||
echo "const APP_VERSION = '$TAG';" > app/src/main/assets/js/version.js
|
||||
echo "document.addEventListener('DOMContentLoaded', () => {
|
||||
const el = document.getElementById('app-version') || document.getElementById('commit-sha');
|
||||
if (el) el.textContent = '$TAG';
|
||||
});" >> app/src/main/assets/js/version.js
|
||||
|
||||
- name: Build APK
|
||||
run: ./gradlew assembleRelease
|
||||
|
||||
@@ -54,25 +70,22 @@ jobs:
|
||||
GITEA_SERVER: ${{ secrets.GIT_SERVER }}
|
||||
run: |
|
||||
set -e
|
||||
SERVER_CLEAN=$(echo "$GITEA_SERVER" | sed 's#/$##')
|
||||
API_BASE="${SERVER_CLEAN}/api/v1"
|
||||
|
||||
API_BASE="${GITEA_SERVER}/api/v1"
|
||||
|
||||
# Gitea Actions są kompatybilne z GITHUB_ envs
|
||||
OWNER="${{ github.repository_owner }}"
|
||||
REPO_NAME=$(echo "${{ github.repository }}" | cut -d/ -f2)
|
||||
TAG="${{ github.ref_name }}"
|
||||
|
||||
echo "URL: $API_BASE/repos/$OWNER/$REPO_NAME/releases"
|
||||
echo "OWNER=$OWNER"
|
||||
echo "REPO_NAME=$REPO_NAME"
|
||||
echo "TAG=$TAG"
|
||||
echo "Debug Info:"
|
||||
echo "- API URL: $API_BASE/repos/$OWNER/$REPO_NAME/releases"
|
||||
echo "- OWNER: $OWNER"
|
||||
echo "- REPO: $REPO_NAME"
|
||||
echo "- TAG: $TAG"
|
||||
|
||||
if [ -z "$TAG" ]; then
|
||||
echo "Error: TAG (ref_name) is empty. Ensure you pushed a tag."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
CREATE_RESPONSE=$(curl -s \
|
||||
# Próba utworzenia release z przechwyceniem statusu HTTP
|
||||
RESPONSE_FILE=$(mktemp)
|
||||
HTTP_STATUS=$(curl -s -o "$RESPONSE_FILE" -w "%{http_code}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: token $GITEA_TOKEN" \
|
||||
-X POST \
|
||||
@@ -85,44 +98,65 @@ jobs:
|
||||
}" \
|
||||
"$API_BASE/repos/$OWNER/$REPO_NAME/releases")
|
||||
|
||||
echo "$CREATE_RESPONSE"
|
||||
RESPONSE_BODY=$(cat "$RESPONSE_FILE")
|
||||
echo "HTTP Status: $HTTP_STATUS"
|
||||
echo "Response: $RESPONSE_BODY"
|
||||
|
||||
RELEASE_ID=$(echo "$CREATE_RESPONSE" \
|
||||
| grep -o '"id":[0-9]*' \
|
||||
| head -n1 \
|
||||
| cut -d: -f2)
|
||||
|
||||
if [ -z "$RELEASE_ID" ]; then
|
||||
echo "Failed to create release"
|
||||
if [ "$HTTP_STATUS" -eq 409 ]; then
|
||||
echo "Release already exists, fetching existing ID..."
|
||||
RESPONSE_BODY=$(curl -s -H "Authorization: token $GITEA_TOKEN" "$API_BASE/repos/$OWNER/$REPO_NAME/releases/tags/$TAG")
|
||||
RELEASE_ID=$(echo "$RESPONSE_BODY" | sed -n 's/.*"id":\([0-9]*\),.*/\1/p' | head -n1)
|
||||
elif [ "$HTTP_STATUS" -eq 201 ]; then
|
||||
RELEASE_ID=$(echo "$RESPONSE_BODY" | sed -n 's/.*"id":\([0-9]*\),.*/\1/p' | head -n1)
|
||||
else
|
||||
echo "Failed to create release. Expected 201 or 409, got $HTTP_STATUS"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "RELEASE_ID=$RELEASE_ID" >> $GITEA_ENV
|
||||
if [ -z "$RELEASE_ID" ]; then
|
||||
echo "Failed to extract RELEASE_ID from response"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "RELEASE_ID=$RELEASE_ID" >> $GITHUB_ENV
|
||||
echo "Successfully processed release ID: $RELEASE_ID"
|
||||
|
||||
- name: Upload APK to Gitea release
|
||||
env:
|
||||
GITEA_TOKEN: ${{ secrets.GIT_TOKEN }}
|
||||
GITEA_SERVER: ${{ secrets.GIT_SERVER }}
|
||||
run: |
|
||||
set -e
|
||||
API_BASE=${GITEA_SERVER:+$GITEA_SERVER/api/v1}
|
||||
API_BASE=${API_BASE:-https://gitea.com/api/v1}
|
||||
REMOTE_URL=$(git config --get remote.origin.url || true)
|
||||
REPO_FULL=$(echo "$REMOTE_URL" | sed -E 's#.*[:/](.+/.+)\.git$#\1#')
|
||||
OWNER=$(echo "$REPO_FULL" | cut -d/ -f1)
|
||||
REPO_NAME=$(echo "$REPO_FULL" | cut -d/ -f2)
|
||||
APK_PATH=${APK_PATH:-$APK_PATH}
|
||||
SERVER_CLEAN=$(echo "$GITEA_SERVER" | sed 's#/$##')
|
||||
API_BASE="${SERVER_CLEAN}/api/v1"
|
||||
|
||||
OWNER="${{ github.repository_owner }}"
|
||||
REPO_NAME=$(echo "${{ github.repository }}" | cut -d/ -f2)
|
||||
TAG="${{ github.ref_name }}"
|
||||
|
||||
if [ -z "$APK_PATH" ]; then
|
||||
echo "APK_PATH not set" >&2
|
||||
exit 1
|
||||
fi
|
||||
RELEASE_ID=${RELEASE_ID}
|
||||
if [ -z "$RELEASE_ID" ]; then
|
||||
echo "RELEASE_ID not set" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
UPLOAD_URL="$API_BASE/repos/$OWNER/$REPO_NAME/releases/$RELEASE_ID/assets?name=$(basename $APK_PATH)"
|
||||
echo "Uploading $APK_PATH to $UPLOAD_URL"
|
||||
# Tworzymy ładną nazwę dla pliku
|
||||
FRIENDLY_NAME="Matma-${TAG}.apk"
|
||||
cp "$APK_PATH" "./$FRIENDLY_NAME"
|
||||
|
||||
curl --fail -H "Authorization: token $GITEA_TOKEN" -H "Content-Type: application/octet-stream" \
|
||||
--data-binary @"$APK_PATH" "$UPLOAD_URL"
|
||||
UPLOAD_URL="$API_BASE/repos/$OWNER/$REPO_NAME/releases/$RELEASE_ID/assets?name=$FRIENDLY_NAME"
|
||||
echo "Uploading $FRIENDLY_NAME to $UPLOAD_URL"
|
||||
|
||||
curl --fail -s -H "Authorization: token $GITEA_TOKEN" \
|
||||
-H "Content-Type: application/octet-stream" \
|
||||
--data-binary @"./$FRIENDLY_NAME" \
|
||||
"$UPLOAD_URL"
|
||||
|
||||
# Dodanie bezpośredniego linku do podsumowania buildu w Gitea
|
||||
DOWNLOAD_URL="${SERVER_CLEAN}/${OWNER}/${REPO_NAME}/releases/download/${TAG}/${FRIENDLY_NAME}"
|
||||
echo "### ✅ APK gotowy do pobrania!" >> $GITHUB_STEP_SUMMARY
|
||||
echo "[Pobierz plik $FRIENDLY_NAME]($DOWNLOAD_URL)" >> $GITHUB_STEP_SUMMARY
|
||||
echo "Adres: $DOWNLOAD_URL" >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
@@ -52,9 +52,17 @@
|
||||
</div>
|
||||
|
||||
<div id="footer-placeholder"></div>
|
||||
<header class="app-header">
|
||||
<button id="back-btn" class="app-nav-btn">← Menu</button>
|
||||
<div class="header-title">Nauka Czytania</div>
|
||||
</header>
|
||||
<footer class="app-footer" style="text-align: center; padding: 1rem; font-size: 0.8rem; color: #64748b;">
|
||||
Wersja: <span id="app-version">...</span>
|
||||
</footer>
|
||||
<script src="js/nav.js?v=20260521"></script>
|
||||
<script src="js/czytanie.js?v=20260524"></script>
|
||||
<script src="js/components.js"></script>
|
||||
<script src="js/version.js"></script>
|
||||
<script>
|
||||
// Ładowanie nagłówka i stopki
|
||||
loadComponent('components/header.html', {
|
||||
|
||||
@@ -59,9 +59,13 @@
|
||||
</div>
|
||||
|
||||
<div id="footer-placeholder"></div>
|
||||
<footer class="app-footer" style="text-align: center; padding: 1rem; font-size: 0.8rem; color: #64748b;">
|
||||
Wersja: <span id="app-version">...</span>
|
||||
</footer>
|
||||
<script src="js/nav.js?v=20260521"></script>
|
||||
<script src="js/dyktando.js?v=20260524"></script>
|
||||
<script src="js/components.js"></script>
|
||||
<script src="js/version.js"></script>
|
||||
<script>
|
||||
loadComponent('components/header.html', {
|
||||
'{TITLE}': '✏️ Dyktando',
|
||||
|
||||
@@ -95,9 +95,13 @@
|
||||
</div>
|
||||
|
||||
<div id="footer-placeholder"></div>
|
||||
<footer class="app-footer" style="text-align: center; padding: 1rem; font-size: 0.8rem; color: #64748b;">
|
||||
Wersja: <span id="app-version">...</span>
|
||||
</footer>
|
||||
<script src="js/nav.js?v=20260521"></script>
|
||||
<script src="js/dzielenie.js?v=20260524"></script>
|
||||
<script src="js/components.js"></script>
|
||||
<script src="js/version.js"></script>
|
||||
<script>
|
||||
loadComponent('components/header.html', {
|
||||
'{TITLE}': '÷ Nauka Dzielenia',
|
||||
|
||||
@@ -95,9 +95,13 @@
|
||||
</div>
|
||||
|
||||
<div id="footer-placeholder"></div>
|
||||
<footer class="app-footer" style="text-align: center; padding: 1rem; font-size: 0.8rem; color: #64748b;">
|
||||
Wersja: <span id="app-version">...</span>
|
||||
</footer>
|
||||
<script src="js/nav.js?v=20260521"></script>
|
||||
<script src="js/mnozenie.js?v=20260524"></script>
|
||||
<script src="js/components.js"></script>
|
||||
<script src="js/version.js"></script>
|
||||
<script>
|
||||
loadComponent('components/header.html', {
|
||||
'{TITLE}': '× Nauka Mnożenia',
|
||||
|
||||
@@ -148,6 +148,9 @@
|
||||
</div>
|
||||
|
||||
<div id="footer-placeholder"></div>
|
||||
<footer class="app-footer" style="text-align: center; padding: 1rem; font-size: 0.8rem; color: #64748b;">
|
||||
Wersja: <span id="app-version">...</span>
|
||||
</footer>
|
||||
<script src="js/version.js?v=20260521" defer></script>
|
||||
<script src="js/nav.js?v=20260521"></script>
|
||||
<script src="js/app.js?v=20260524"></script>
|
||||
|
||||
Reference in New Issue
Block a user