Skip to content

Push to registry

Push to registry #21

Workflow file for this run

name: Push to registry
on:
create:
jobs:
docker:
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
steps:
- name: Install jq if not present
run: |
if ! command -v jq &> /dev/null
then
sudo apt-get update
sudo apt-get install -y jq
fi
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Registry
uses: docker/login-action@v3
with:
registry: http://registry.ellite.dev/
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push
uses: docker/build-push-action@v5
with:
push: true
tags: registry.ellite.dev/raibu-web:${{ github.ref_name }}
- name: Update latest tag
run: |
LATEST_TAG=$(curl -s https://api.github.com/repos/${{ github.repository }}/tags | jq -r '.[].name' | sort -V | tail -n 1)
CURRENT_TAG=${{ github.ref_name }}
SEMVER_REGEX="^v([0-9]+)\.([0-9]+)\.([0-9]+)$"
if [[ ! $CURRENT_TAG =~ $SEMVER_REGEX ]]; then
echo "Error: Tag $CURRENT_TAG does not follow semantic versioning"
exit 1
fi
if [[ "$(printf '%s\n' "$LATEST_TAG" "$CURRENT_TAG" | sort -V | tail -n 1)" == "$CURRENT_TAG" ]]; then
docker tag registry.ellite.dev/raibu-web:${{ github.ref_name }} registry.ellite.dev/raibu-web:latest
docker push registry.ellite.dev/raibu-web:latest
fi
- name: Test image
run: |
docker pull registry.ellite.dev/raibu-web:${{ github.ref_name }}
if [ $? -eq 0 ]; then
echo "Image exists"
else
echo "Image does not exist"
exit 1
fi
tarball:
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Create copy of workspace
run: |
mkdir ../temp_workspace
cp -r . ../temp_workspace
- name: Create tarball
run: |
tar --exclude='./.git' -czvvf raibu-web.tar.gz ../temp_workspace
- name: Upload tarball
uses: actions/upload-artifact@v2
with:
name: raibu-web
path: raibu-web.tar.gz