Refactor build-and-push workflow to install dependencies and retrieve Forge snapshot tag
Some checks failed
Build & Push Forge-Kasm / docker (push) Failing after 4s
Some checks failed
Build & Push Forge-Kasm / docker (push) Failing after 4s
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user