new test pipe
Some checks failed
Homepage Build and Deploy / Deploy Homepage (push) Has been cancelled
Homepage Build and Deploy / Build Homepage Image (push) Has been cancelled
(Matrix) Homepage Build and Deploy / Build Homepage Image (arm64) (push) Failing after 1m30s
(Matrix) Homepage Build and Deploy / Deploy Homepage (push) Successful in 1m3s
(Matrix) Homepage Build and Deploy / Build Homepage Image (amd64) (push) Failing after 1m29s
(Matrix) Homepage Build and Deploy / create-manifest (push) Has been skipped

This commit is contained in:
2025-08-23 00:21:08 -03:00
parent e4ca714448
commit 552ae580ea

View File

@@ -0,0 +1,85 @@
name: (Matrix) Homepage Build and Deploy
on:
push:
workflow_dispatch:
env:
REGISTRY_HOST: git.ivanch.me
REGISTRY_USERNAME: ivanch
IMAGE_NAME: ${{ env.REGISTRY_HOST }}/ivanch/mainpage
jobs:
build:
strategy:
matrix:
include:
- platform: linux/amd64
runner: ubuntu-slim
arch: amd64
- platform: linux/arm64
runner: ubuntu-arm64 # Your ARM64 runner label
arch: arm64
runs-on: ${{ matrix.runner }}
name: Build Homepage Image (${{ matrix.arch }})
steps:
- name: Check out repository
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Container Registry
run: |
echo "${{ secrets.REGISTRY_PASSWORD }}" \
| docker login "${{ env.REGISTRY_HOST }}" \
-u "${{ env.REGISTRY_USERNAME }}" \
--password-stdin
- name: Build and Push Multi-Arch Image
uses: docker/build-push-action@v6
with:
push: true
context: .
platforms: ${{ matrix.platform }}
tags: |
${{ env.IMAGE_NAME }}:${{ matrix.arch }}
cache-from: type=gha
cache-to: type=gha,mode=max
create-manifest:
needs: build
runs-on: ubuntu-latest
steps:
- name: Log in to Container Registry
run: |
echo "${{ secrets.REGISTRY_PASSWORD }}" \
| docker login "${{ env.REGISTRY_HOST }}" \
-u "${{ env.REGISTRY_USERNAME }}" \
--password-stdin
- name: Create and push manifest
run: |
docker manifest create ${{ env.IMAGE_NAME }}:latest \
${{ env.IMAGE_NAME }}:amd64 \
${{ env.IMAGE_NAME }}:arm64
docker manifest push ${{ env.IMAGE_NAME }}:latest
deploy_ivanch_me:
name: Deploy Homepage
runs-on: ubuntu-amd64
needs: build_ivanch_me
steps:
- name: Recreate Container
uses: appleboy/ssh-action@v0.1.7
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.KEY }}
port: ${{ secrets.PORT }}
script: |
cd ${{ secrets.DIR }}
docker compose pull
docker compose up -d --force-recreate