Files
forge-kasm/.gitea/workflows/build-and-push.yaml

67 lines
2.1 KiB
YAML

name: Build & Push Forge-Kasm
on:
push:
branches: [ main ]
jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Install Dependencies
run: |
apt-get update && apt-get install -y curl jq docker.io
- name: Get Forge Snapshot Tag
id: get_tag
run: |
SNAPSHOT_URL=$(curl -s https://api.github.com/repos/Card-Forge/forge/releases/tags/daily-snapshots \
| jq -r '.assets[] | select(.name | test("forge-installer-.*\\.tar\\.bz2")) | .browser_download_url')
echo "Snapshot URL: $SNAPSHOT_URL"
SNAPSHOT_NAME=$(basename "$SNAPSHOT_URL")
echo "Snapshot file: $SNAPSHOT_NAME"
# Extract the "06.11" part from something like: forge-installer-2.0.05-SNAPSHOT-06.11.tar.bz2
SNAPSHOT_TAG=$(echo "$SNAPSHOT_NAME" | sed -E 's/.*SNAPSHOT-([0-9]+\.[0-9]+)\.tar\.bz2/\1/')
echo "Using tag: $SNAPSHOT_TAG"
echo "snapshot_tag=$SNAPSHOT_TAG" >> "$GITHUB_OUTPUT"
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to Docker Hub
run: echo "${{ secrets.DOCKERHUB_PASSWORD }}" | docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" --password-stdin
- name: Build and Push Docker Image
run: |
IMAGE=forge-kasm
USERNAME=${{ secrets.DOCKERHUB_USERNAME }}
TAG=${{ steps.get_tag.outputs.snapshot_tag }}
echo "Building Docker image as: $USERNAME/$IMAGE:$TAG"
docker build \
--build-arg FORGE_SNAPSHOT_TAG=$TAG \
-t $USERNAME/$IMAGE:$TAG .
echo "Pushing Docker image: $USERNAME/$IMAGE:$TAG"
docker push $USERNAME/$IMAGE:$TAG
- name: Also Push 'latest' Tag
run: |
IMAGE=forge-kasm
USERNAME=${{ secrets.DOCKERHUB_USERNAME }}
TAG=${{ steps.get_tag.outputs.snapshot_tag }}
echo "Tagging image as 'latest'"
docker tag $USERNAME/$IMAGE:$TAG $USERNAME/$IMAGE:latest
echo "Pushing Docker image: $USERNAME/$IMAGE:latest"
docker push $USERNAME/$IMAGE:latest