new
This commit is contained in:
@@ -14,8 +14,12 @@ jobs:
|
|||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
# Używamy oficjalnych nazw obrazów, które znalazłeś
|
# --- ZMIANA 1: Rozbudowujemy matrix o dodatkowe zmienne ---
|
||||||
arch: [arm32v7, arm32v6]
|
include:
|
||||||
|
- arch_name: arm32v7
|
||||||
|
platform: linux/arm/v7
|
||||||
|
- arch_name: arm32v6
|
||||||
|
platform: linux/arm/v6
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Pobieranie kodu
|
- name: Pobieranie kodu
|
||||||
@@ -27,50 +31,45 @@ jobs:
|
|||||||
- name: Zbuduj paczkę w emulowanym kontenerze
|
- name: Zbuduj paczkę w emulowanym kontenerze
|
||||||
id: build-step
|
id: build-step
|
||||||
run: |
|
run: |
|
||||||
# Definiujemy nazwy dla ułatwienia
|
# Definiujemy nazwy, korzystając ze zmiennych z matrixa
|
||||||
VERSION="${{ github.event.inputs.version }}"
|
VERSION="${{ github.event.inputs.version }}"
|
||||||
ARCHITECTURE="${{ matrix.arch }}"
|
ARCH_NAME="${{ matrix.arch_name }}"
|
||||||
CONTAINER_NAME="builder-${ARCHITECTURE//\//-}" # Zastępujemy '/' w nazwie, aby była poprawna
|
PLATFORM="${{ matrix.platform }}"
|
||||||
FILENAME="HAIERPI-${VERSION}-${ARCHITECTURE//\//-}.tar.gz"
|
CONTAINER_NAME="builder-${ARCH_NAME//\//-}"
|
||||||
IMAGE_NAME="${ARCHITECTURE}/python:3.9-slim-bullseye"
|
FILENAME="HAIERPI-${VERSION}-${ARCH_NAME//\//-}.tar.gz"
|
||||||
|
IMAGE_NAME="${ARCH_NAME}/python:3.9-slim-bullseye"
|
||||||
|
|
||||||
echo "Start budowania dla architektury: ${ARCHITECTURE}"
|
echo "Start budowania dla architektury: ${ARCH_NAME}"
|
||||||
echo "Używany obraz Docker: ${IMAGE_NAME}"
|
echo "Używany obraz Docker: ${IMAGE_NAME}"
|
||||||
|
echo "Flaga platformy: ${PLATFORM}"
|
||||||
|
|
||||||
# 1. Uruchom kontener budujący w tle
|
# --- ZMIANA 2: Dodajemy flagę --platform do docker run ---
|
||||||
echo "Uruchamiam kontener budujący: ${CONTAINER_NAME}"
|
echo "Uruchamiam kontener budujący: ${CONTAINER_NAME}"
|
||||||
docker run -d --name "${CONTAINER_NAME}" "${IMAGE_NAME}" tail -f /dev/null
|
docker run -d --name "${CONTAINER_NAME}" --platform "${PLATFORM}" "${IMAGE_NAME}" tail -f /dev/null
|
||||||
|
|
||||||
# 2. Utwórz katalog docelowy w kontenerze
|
# Reszta skryptu pozostaje bez zmian, bo korzysta z tych samych zmiennych
|
||||||
echo "Tworzę katalog /app wewnątrz kontenera..."
|
echo "Tworzę katalog /app wewnątrz kontenera..."
|
||||||
docker exec "${CONTAINER_NAME}" mkdir -p /app
|
docker exec "${CONTAINER_NAME}" mkdir -p /app
|
||||||
|
|
||||||
# 3. Skopiuj plik z zależnościami do kontenera
|
|
||||||
echo "Kopiuję requirements.txt do kontenera..."
|
echo "Kopiuję requirements.txt do kontenera..."
|
||||||
docker cp requirements.txt "${CONTAINER_NAME}:/app/"
|
docker cp requirements.txt "${CONTAINER_NAME}:/app/"
|
||||||
|
|
||||||
# 4. Zainstaluj zależności wewnątrz kontenera
|
|
||||||
echo "Instaluję zależności wewnątrz kontenera..."
|
echo "Instaluję zależności wewnątrz kontenera..."
|
||||||
docker exec "${CONTAINER_NAME}" /bin/bash -c "cd /app && python -m venv venv && source venv/bin/activate && pip install -r requirements.txt"
|
docker exec "${CONTAINER_NAME}" /bin/bash -c "cd /app && python -m venv venv && source venv/bin/activate && pip install -r requirements.txt"
|
||||||
|
|
||||||
# 5. Skopiuj resztę kodu aplikacji do kontenera
|
|
||||||
echo "Kopiuję kod aplikacji do kontenera..."
|
echo "Kopiuję kod aplikacji do kontenera..."
|
||||||
docker cp . "${CONTAINER_NAME}:/app/src"
|
docker cp . "${CONTAINER_NAME}:/app/src"
|
||||||
|
|
||||||
# 6. Stwórz finalne archiwum .tar.gz wewnątrz kontenera
|
|
||||||
echo "Tworzę archiwum ${FILENAME} wewnątrz kontenera..."
|
echo "Tworzę archiwum ${FILENAME} wewnątrz kontenera..."
|
||||||
docker exec "${CONTAINER_NAME}" tar -czf "/${FILENAME}" -C /app .
|
docker exec "${CONTAINER_NAME}" tar -czf "/${FILENAME}" -C /app .
|
||||||
|
|
||||||
# 7. Skopiuj gotowe archiwum z kontenera z powrotem do runnera
|
|
||||||
echo "Kopiuję gotową paczkę z kontenera..."
|
echo "Kopiuję gotową paczkę z kontenera..."
|
||||||
docker cp "${CONTAINER_NAME}:/${FILENAME}" .
|
docker cp "${CONTAINER_NAME}:/${FILENAME}" .
|
||||||
|
|
||||||
# 8. Zatrzymaj i usuń kontener budujący
|
|
||||||
echo "Sprzątam po procesie budowania..."
|
echo "Sprzątam po procesie budowania..."
|
||||||
docker stop "${CONTAINER_NAME}"
|
docker stop "${CONTAINER_NAME}"
|
||||||
docker rm "${CONTAINER_NAME}"
|
docker rm "${CONTAINER_NAME}"
|
||||||
|
|
||||||
# 9. Zapisz nazwę pliku dla następnego kroku
|
|
||||||
echo "filename=${FILENAME}" >> $GITEA_OUTPUT
|
echo "filename=${FILENAME}" >> $GITEA_OUTPUT
|
||||||
|
|
||||||
- name: Publikacja paczki
|
- name: Publikacja paczki
|
||||||
|
|||||||
Reference in New Issue
Block a user