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