name: docker-build-push on: push: branches: [main] workflow_dispatch: jobs: build-push: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Build and push image via the admin host env: ADMIN_HOST_SSH_KEY: ${{ secrets.ADMIN_HOST_SSH_KEY }} REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }} run: | mkdir -p ~/.ssh printf '%s\n' "$ADMIN_HOST_SSH_KEY" > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 ssh-keyscan -H host.docker.internal >> ~/.ssh/known_hosts 2>/dev/null SHA="${{ github.sha }}" REMOTE_DIR="/tmp/ci-yttrx-welcomebot-$SHA" IMAGE="gitea.blairhaus.net/pmb/yttrx-welcomebot" tar czf - --exclude=.git . | ssh -i ~/.ssh/id_ed25519 pmb@host.docker.internal \ "mkdir -p $REMOTE_DIR && tar xzf - -C $REMOTE_DIR" ssh -i ~/.ssh/id_ed25519 pmb@host.docker.internal bash -s < [host] building $IMAGE:$SHA" docker build -t "$IMAGE:$SHA" -t "$IMAGE:latest" . printf '%s' "$REGISTRY_TOKEN" | docker login gitea.blairhaus.net -u pmb --password-stdin docker push "$IMAGE:$SHA" docker push "$IMAGE:latest" docker logout gitea.blairhaus.net rm -rf "$REMOTE_DIR" EOF echo "pushed $IMAGE:$SHA and $IMAGE:latest"