diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index 5ab8aca..73856c0 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -11,20 +11,49 @@ jobs: - name: Checkout repo uses: actions/checkout@v3 - - name: Install Docker CLI + - name: Install Dependencies run: | - apt-get update && apt-get install -y docker.io + sudo apt-get update && sudo apt-get install -y curl jq docker.io - - name: Set up Docker + - 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 + - name: Build and Push Docker Image run: | IMAGE=forge-kasm USERNAME=${{ secrets.DOCKERHUB_USERNAME }} - TAG=latest + TAG=${{ steps.get_tag.outputs.snapshot_tag }} + + echo "Building and pushing image as: $USERNAME/$IMAGE:$TAG" + docker build -t $USERNAME/$IMAGE:$TAG . docker push $USERNAME/$IMAGE:$TAG + + - name: (Optional) Also Push 'latest' Tag + run: | + IMAGE=forge-kasm + USERNAME=${{ secrets.DOCKERHUB_USERNAME }} + TAG=${{ steps.get_tag.outputs.snapshot_tag }} + + docker tag $USERNAME/$IMAGE:$TAG $USERNAME/$IMAGE:latest + docker push $USERNAME/$IMAGE:latest