All checks were successful
Build & Push Forge-Kasm / docker (push) Successful in 28s
60 lines
1.9 KiB
YAML
60 lines
1.9 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 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
|