Merge pull request #108 from chipp/elizabeth-404 #151
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Publish and deploy | |
on: | |
push: | |
branches: | |
- main | |
jobs: | |
push: | |
runs-on: ubuntu-latest | |
if: github.event_name == 'push' | |
strategy: | |
matrix: | |
include: | |
- binary: alisa | |
mode: image | |
- binary: elisa | |
mode: binary | |
- binary: elizabeth | |
mode: image | |
- binary: isabel | |
mode: binary | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Log into registry | |
run: echo ${{ secrets.CR_PAT }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@master | |
- name: Build image | |
run: | | |
IMAGE_ID=ghcr.io/chipp/${{ matrix.binary }} | |
docker buildx build . --file bin/${{ matrix.binary }}/Dockerfile \ | |
--load \ | |
--progress plain \ | |
--tag $IMAGE_ID:latest \ | |
--build-arg VERSION="0.1.${{ github.run_number }}" \ | |
--cache-from=type=registry,ref=$IMAGE_ID:cache \ | |
--cache-to=type=registry,ref=$IMAGE_ID:cache,mode=max | |
docker images -a | |
- name: Compose arm64 runnable image | |
if: matrix.mode == 'image' | |
run: | | |
IMAGE_ID=ghcr.io/chipp/${{ matrix.binary }} | |
docker images -a | |
docker run --rm -v "$PWD/build:/build" ghcr.io/chipp/${{ matrix.binary }}:latest \ | |
cp /root/${{ matrix.binary }} /build/${{ matrix.binary }} | |
docker buildx build . --file conf/arm64.Dockerfile \ | |
--push \ | |
--platform linux/arm64 \ | |
--progress plain \ | |
--tag $IMAGE_ID:latest \ | |
--build-arg BINARY=${{ matrix.binary }} \ | |
--label "org.opencontainers.image.source=https://github.com/${{ github.repository }}" | |
- name: Extract arm64 binary | |
if: matrix.mode == 'binary' | |
run: | | |
docker images -a | |
docker run --rm -v "$PWD/build:/build" ghcr.io/chipp/${{ matrix.binary }}:latest \ | |
cp /root/${{ matrix.binary }} /build/${{ matrix.binary }} | |
- name: Archive arm64 artifact | |
if: matrix.mode == 'binary' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.binary }} | |
path: build/${{ matrix.binary }} | |
retention-days: 1 | |
deploy: | |
runs-on: ubuntu-latest | |
needs: push | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Add ssh key | |
run: | | |
mkdir ~/.ssh/ | |
echo "${{ secrets.ssh_key }}" > ~/.ssh/id_rsa | |
echo "ezio.chipp.dev ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHynflleQHqQg0GHDph+GkNQARa56hAlJJf4ogGKbwsh" >> ~/.ssh/known_hosts | |
echo "pi4.chipp.dev ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMFENzlmv0ZYkEREgu8EERva4dLF/6UjXlkNOmc2Q1SJ" >> ~/.ssh/known_hosts | |
echo "Host pi4.chipp.dev" > ~/.ssh/config | |
echo " ProxyCommand $PWD/cloudflared-linux-amd64 access ssh --hostname %h" >> ~/.ssh/config | |
chmod -R 700 ~/.ssh/ | |
- name: Install cloudflared | |
run: | | |
curl -sSLO https://github.com/cloudflare/cloudflared/releases/download/2024.2.1/cloudflared-linux-amd64 | |
echo "f140d18894206a45f5150d34066e8940a3bca82a0da670fcb4e6d93b11f0c81c cloudflared-linux-amd64" | sha256sum -c - | |
chmod +x cloudflared-linux-amd64 | |
- name: Deploy alisa and elizabeth | |
run: | | |
eval `ssh-agent -s` | |
echo "${{ secrets.ssh_key_passphrase }}" | ssh-add ~/.ssh/id_rsa | |
scp conf/docker-compose.yml conf/mq.conf \ | |
[email protected]:/web/lisa | |
ssh [email protected] \ | |
"cd /web/lisa && docker compose down --remove-orphans --rmi all && docker compose up -d" | |
- name: Download elisa | |
uses: actions/download-artifact@v4 | |
with: | |
name: elisa | |
- name: Download isabel | |
uses: actions/download-artifact@v4 | |
with: | |
name: isabel | |
- name: Deploy elisa and isabel | |
run: | | |
eval `ssh-agent -s` | |
echo "${{ secrets.ssh_key_passphrase }}" | ssh-add ~/.ssh/id_rsa | |
export TUNNEL_SERVICE_TOKEN_ID=${{ secrets.TUNNEL_SERVICE_TOKEN_ID }} | |
export TUNNEL_SERVICE_TOKEN_SECRET=${{ secrets.TUNNEL_SERVICE_TOKEN_SECRET }} | |
ssh [email protected] "echo test" | |
ssh [email protected] "sudo service elisa stop && sudo service isabel stop" | |
scp elisa isabel [email protected]:/usr/local/bin | |
ssh [email protected] "sudo service elisa start && sudo service isabel start" |