new
This commit is contained in:
@@ -14,8 +14,12 @@ jobs:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
# Używamy oficjalnych nazw obrazów, które znalazłeś
|
||||
arch: [arm32v7, arm32v6]
|
||||
# --- ZMIANA 1: Rozbudowujemy matrix o dodatkowe zmienne ---
|
||||
include:
|
||||
- arch_name: arm32v7
|
||||
platform: linux/arm/v7
|
||||
- arch_name: arm32v6
|
||||
platform: linux/arm/v6
|
||||
|
||||
steps:
|
||||
- name: Pobieranie kodu
|
||||
@@ -27,50 +31,45 @@ jobs:
|
||||
- name: Zbuduj paczkę w emulowanym kontenerze
|
||||
id: build-step
|
||||
run: |
|
||||
# Definiujemy nazwy dla ułatwienia
|
||||
# Definiujemy nazwy, korzystając ze zmiennych z matrixa
|
||||
VERSION="${{ github.event.inputs.version }}"
|
||||
ARCHITECTURE="${{ matrix.arch }}"
|
||||
CONTAINER_NAME="builder-${ARCHITECTURE//\//-}" # Zastępujemy '/' w nazwie, aby była poprawna
|
||||
FILENAME="HAIERPI-${VERSION}-${ARCHITECTURE//\//-}.tar.gz"
|
||||
IMAGE_NAME="${ARCHITECTURE}/python:3.9-slim-bullseye"
|
||||
ARCH_NAME="${{ matrix.arch_name }}"
|
||||
PLATFORM="${{ matrix.platform }}"
|
||||
CONTAINER_NAME="builder-${ARCH_NAME//\//-}"
|
||||
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 "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}"
|
||||
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..."
|
||||
docker exec "${CONTAINER_NAME}" mkdir -p /app
|
||||
|
||||
# 3. Skopiuj plik z zależnościami do kontenera
|
||||
echo "Kopiuję requirements.txt do kontenera..."
|
||||
docker cp requirements.txt "${CONTAINER_NAME}:/app/"
|
||||
|
||||
# 4. Zainstaluj 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"
|
||||
|
||||
# 5. Skopiuj resztę kodu aplikacji do kontenera
|
||||
echo "Kopiuję kod aplikacji do kontenera..."
|
||||
docker cp . "${CONTAINER_NAME}:/app/src"
|
||||
|
||||
# 6. Stwórz finalne archiwum .tar.gz wewnątrz kontenera
|
||||
echo "Tworzę archiwum ${FILENAME} wewnątrz kontenera..."
|
||||
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..."
|
||||
docker cp "${CONTAINER_NAME}:/${FILENAME}" .
|
||||
|
||||
# 8. Zatrzymaj i usuń kontener budujący
|
||||
echo "Sprzątam po procesie budowania..."
|
||||
docker stop "${CONTAINER_NAME}"
|
||||
docker rm "${CONTAINER_NAME}"
|
||||
|
||||
# 9. Zapisz nazwę pliku dla następnego kroku
|
||||
echo "filename=${FILENAME}" >> $GITEA_OUTPUT
|
||||
|
||||
- name: Publikacja paczki
|
||||
|
||||
Reference in New Issue
Block a user