replaces differ by skopeo for digest

This improves the compatability with base images that are not in differ.
This commit is contained in:
Tau 2024-04-05 11:53:04 +02:00
parent 80c83f12f6
commit 0ce244094c

View file

@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
outputs: outputs:
has_updates: ${{ steps.set_output.outputs.has_updates }} has_updates: ${{ steps.set_output.outputs.has_updates }}
base_image_type: ${{ steps.read_base_recipe.outputs.base_image_type }} base_image: ${{ steps.read_base_recipe.outputs.base_image }}
permissions: permissions:
contents: write contents: write
steps: steps:
@ -23,16 +23,16 @@ jobs:
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Install dependencies - name: Install dependencies
run: sudo apt-get install jq run: sudo apt-get install -y jq skopeo
- name: Read base image name from recipe - name: Read base image name from recipe
id: read_base_recipe id: read_base_recipe
run: | run: |
BASE_IMAGE="$(cat recipe.yml | grep "ghcr.io/vanilla-os" | awk -F ' ' '{print $2}')" BASE_IMAGE="$(cat recipe.yml | grep "base: " | awk -F ' ' '{print $2}')"
echo The base image is $BASE_IMAGE echo The base image is $BASE_IMAGE
BASE_IMAGE_TYPE="$(echo $BASE_IMAGE | awk -F '/' '{print $3}' | awk -F ':' '{print $1}')" if [ -z $BASE_IMAGE ]; then exit 1; fi
echo "base_image_type=$BASE_IMAGE_TYPE" >> "$GITHUB_OUTPUT" echo "base_image=$BASE_IMAGE" >> "$GITHUB_OUTPUT"
echo "BASE_IMAGE_TYPE=$BASE_IMAGE_TYPE" >> "$GITHUB_ENV" echo "BASE_IMAGE=$BASE_IMAGE" >> "$GITHUB_ENV"
- name: get last successful run - name: get last successful run
if: ${{ github.ref_type == 'branch' }} if: ${{ github.ref_type == 'branch' }}
@ -55,8 +55,7 @@ jobs:
run: | run: |
touch digest.txt touch digest.txt
mv digest.txt last_digest.txt mv digest.txt last_digest.txt
curl https://differ.vanillaos.org/images/${{ env.BASE_IMAGE_TYPE }} > vanilla-image-info skopeo inspect --raw docker://${{ env.BASE_IMAGE }} | sha256sum > digest.txt
jq -r '.image.releases[-1].digest' vanilla-image-info > digest.txt
echo Old digest is: $(cat last_digest.txt) echo Old digest is: $(cat last_digest.txt)
echo New digest is: $(cat digest.txt) echo New digest is: $(cat digest.txt)
echo "HAS_UPDATES=$(cmp -s digest.txt last_digest.txt; echo $?)" >> "$GITHUB_ENV" echo "HAS_UPDATES=$(cmp -s digest.txt last_digest.txt; echo $?)" >> "$GITHUB_ENV"
@ -105,7 +104,7 @@ jobs:
- name: Set image info - name: Set image info
run: | run: |
echo -n "vanilla-os/${{ needs.check_update.outputs.base_image_type }}" > ./includes.container/image-info/base-image-name echo -n "${{ needs.check_update.outputs.base_image }}" > ./includes.container/image-info/base-image-name
echo -n "${{ env.REPO_OWNER_LOWERCASE }}/${{ env.CUSTOM_IMAGE_NAME }}" > ./includes.container/image-info/image-name echo -n "${{ env.REPO_OWNER_LOWERCASE }}/${{ env.CUSTOM_IMAGE_NAME }}" > ./includes.container/image-info/image-name
- name: Build the Docker image - name: Build the Docker image