Sfoglia il codice sorgente

[CI] make sure the container image tag is valid

Andy Li 3 anni fa
parent
commit
916d845903
2 ha cambiato i file con 38 aggiunte e 24 eliminazioni
  1. 19 12
      .github/workflows/main.yml
  2. 19 12
      extra/github-actions/workflows/main.yml

+ 19 - 12
.github/workflows/main.yml

@@ -222,11 +222,13 @@ jobs:
         if: ${{ !startsWith(github.ref, 'refs/tags/') }}
         if: ${{ !startsWith(github.ref, 'refs/tags/') }}
         run: echo "ADD_REVISION=1" >> $GITHUB_ENV
         run: echo "ADD_REVISION=1" >> $GITHUB_ENV
 
 
-      - name: Set CONTAINER_REG
-        run: echo "CONTAINER_REG=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV
+      - name: Set CONTAINER_ vars
+        run: |
+          echo "CONTAINER_REG=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV;
+          echo "CONTAINER_TAG=$(echo ${{ github.ref_name }} | sed -e 's/[^A-Za-z0-9\.]/-/g')" >> $GITHUB_ENV;
 
 
       - name: Build devcontainer
       - name: Build devcontainer
-        run: earthly +devcontainer --ADD_REVISION="$ADD_REVISION" --IMAGE_NAME="ghcr.io/${CONTAINER_REG}_devcontainer" --IMAGE_TAG="${{github.ref_name}}-amd64" --IMAGE_CACHE="ghcr.io/haxefoundation/haxe_devcontainer:development-amd64"
+        run: earthly +devcontainer --ADD_REVISION="$ADD_REVISION" --IMAGE_NAME="ghcr.io/${CONTAINER_REG}_devcontainer" --IMAGE_TAG="${CONTAINER_TAG}-amd64" --IMAGE_CACHE="ghcr.io/haxefoundation/haxe_devcontainer:development-amd64"
         env:
         env:
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
           EARTHLY_USE_INLINE_CACHE: true
           EARTHLY_USE_INLINE_CACHE: true
@@ -236,7 +238,7 @@ jobs:
         run: earthly +build --ADD_REVISION="$ADD_REVISION"
         run: earthly +build --ADD_REVISION="$ADD_REVISION"
         env:
         env:
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
-          EARTHLY_REMOTE_CACHE: "ghcr.io/${{env.CONTAINER_REG}}_cache:build-${{github.ref_name}}-amd64"
+          EARTHLY_REMOTE_CACHE: "ghcr.io/${{env.CONTAINER_REG}}_cache:build-${{env.CONTAINER_TAG}}-amd64"
 
 
       - name: Build xmldoc
       - name: Build xmldoc
         run: earthly +xmldoc --COMMIT="${{ github.sha }}" --BRANCH="${{ github.ref_name }}"
         run: earthly +xmldoc --COMMIT="${{ github.sha }}" --BRANCH="${{ github.ref_name }}"
@@ -257,7 +259,7 @@ jobs:
         run: earthly +test-all --GITHUB_ACTIONS="$GITHUB_ACTIONS"
         run: earthly +test-all --GITHUB_ACTIONS="$GITHUB_ACTIONS"
         env:
         env:
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
-          EARTHLY_REMOTE_CACHE: "ghcr.io/${{env.CONTAINER_REG}}_cache:test-${{github.ref_name}}-amd64"
+          EARTHLY_REMOTE_CACHE: "ghcr.io/${{env.CONTAINER_REG}}_cache:test-${{env.CONTAINER_TAG}}-amd64"
 
 
   linux-arm64:
   linux-arm64:
     runs-on: ubuntu-18.04
     runs-on: ubuntu-18.04
@@ -291,11 +293,13 @@ jobs:
         if: ${{ !startsWith(github.ref, 'refs/tags/') }}
         if: ${{ !startsWith(github.ref, 'refs/tags/') }}
         run: echo "ADD_REVISION=1" >> $GITHUB_ENV
         run: echo "ADD_REVISION=1" >> $GITHUB_ENV
 
 
-      - name: Set CONTAINER_REG
-        run: echo "CONTAINER_REG=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV
+      - name: Set CONTAINER_ vars
+        run: |
+          echo "CONTAINER_REG=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV;
+          echo "CONTAINER_TAG=$(echo ${{ github.ref_name }} | sed -e 's/[^A-Za-z0-9\.]/-/g')" >> $GITHUB_ENV;
 
 
       - name: Build devcontainer
       - name: Build devcontainer
-        run: earthly --platform=linux/arm64 +devcontainer --ADD_REVISION="$ADD_REVISION" --IMAGE_NAME="ghcr.io/${CONTAINER_REG}_devcontainer" --IMAGE_TAG="${{github.ref_name}}-arm64" --IMAGE_CACHE="ghcr.io/haxefoundation/haxe_devcontainer:development-arm64"
+        run: earthly --platform=linux/arm64 +devcontainer --ADD_REVISION="$ADD_REVISION" --IMAGE_NAME="ghcr.io/${CONTAINER_REG}_devcontainer" --IMAGE_TAG="${CONTAINER_TAG}-arm64" --IMAGE_CACHE="ghcr.io/haxefoundation/haxe_devcontainer:development-arm64"
         env:
         env:
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
           EARTHLY_USE_INLINE_CACHE: true
           EARTHLY_USE_INLINE_CACHE: true
@@ -305,7 +309,7 @@ jobs:
         run: earthly --platform=linux/arm64 +build --ADD_REVISION="$ADD_REVISION"
         run: earthly --platform=linux/arm64 +build --ADD_REVISION="$ADD_REVISION"
         env:
         env:
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
-          EARTHLY_REMOTE_CACHE: "ghcr.io/${{env.CONTAINER_REG}}_cache:build-${{github.ref_name}}-arm64"
+          EARTHLY_REMOTE_CACHE: "ghcr.io/${{env.CONTAINER_REG}}_cache:build-${{env.CONTAINER_TAG}}-arm64"
 
 
       - name: Upload artifact
       - name: Upload artifact
         uses: actions/[email protected]
         uses: actions/[email protected]
@@ -348,14 +352,17 @@ jobs:
         if: ${{ !startsWith(github.ref, 'refs/tags/') }}
         if: ${{ !startsWith(github.ref, 'refs/tags/') }}
         run: echo "ADD_REVISION=1" >> $GITHUB_ENV
         run: echo "ADD_REVISION=1" >> $GITHUB_ENV
 
 
-      - name: Set CONTAINER_REG
-        run: echo "CONTAINER_REG=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV
+      - name: Set CONTAINER_ vars
+        run: |
+          echo "CONTAINER_REG=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV;
+          echo "CONTAINER_TAG=$(echo ${{ github.ref_name }} | sed -e 's/[^A-Za-z0-9\.]/-/g')" >> $GITHUB_ENV;
 
 
       - name: Build devcontainer
       - name: Build devcontainer
-        run: earthly +devcontainer-multiarch --ADD_REVISION="$ADD_REVISION" --IMAGE_NAME="ghcr.io/${CONTAINER_REG}_devcontainer" --IMAGE_TAG="${{github.ref_name}}"
+        run: earthly +devcontainer-multiarch --ADD_REVISION="$ADD_REVISION" --IMAGE_NAME="ghcr.io/${CONTAINER_REG}_devcontainer" --IMAGE_TAG="${CONTAINER_TAG}"
         env:
         env:
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
           EARTHLY_USE_INLINE_CACHE: true
           EARTHLY_USE_INLINE_CACHE: true
+          EARTHLY_SAVE_INLINE_CACHE: true
 
 
   mac-build:
   mac-build:
     runs-on: macos-latest
     runs-on: macos-latest

+ 19 - 12
extra/github-actions/workflows/main.yml

@@ -77,11 +77,13 @@ jobs:
         if: ${{ !startsWith(github.ref, 'refs/tags/') }}
         if: ${{ !startsWith(github.ref, 'refs/tags/') }}
         run: echo "ADD_REVISION=1" >> $GITHUB_ENV
         run: echo "ADD_REVISION=1" >> $GITHUB_ENV
 
 
-      - name: Set CONTAINER_REG
-        run: echo "CONTAINER_REG=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV
+      - name: Set CONTAINER_ vars
+        run: |
+          echo "CONTAINER_REG=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV;
+          echo "CONTAINER_TAG=$(echo ${{ github.ref_name }} | sed -e 's/[^A-Za-z0-9\.]/-/g')" >> $GITHUB_ENV;
 
 
       - name: Build devcontainer
       - name: Build devcontainer
-        run: earthly +devcontainer --ADD_REVISION="$ADD_REVISION" --IMAGE_NAME="ghcr.io/${CONTAINER_REG}_devcontainer" --IMAGE_TAG="${{github.ref_name}}-amd64" --IMAGE_CACHE="ghcr.io/haxefoundation/haxe_devcontainer:development-amd64"
+        run: earthly +devcontainer --ADD_REVISION="$ADD_REVISION" --IMAGE_NAME="ghcr.io/${CONTAINER_REG}_devcontainer" --IMAGE_TAG="${CONTAINER_TAG}-amd64" --IMAGE_CACHE="ghcr.io/haxefoundation/haxe_devcontainer:development-amd64"
         env:
         env:
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
           EARTHLY_USE_INLINE_CACHE: true
           EARTHLY_USE_INLINE_CACHE: true
@@ -91,7 +93,7 @@ jobs:
         run: earthly +build --ADD_REVISION="$ADD_REVISION"
         run: earthly +build --ADD_REVISION="$ADD_REVISION"
         env:
         env:
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
-          EARTHLY_REMOTE_CACHE: "ghcr.io/${{env.CONTAINER_REG}}_cache:build-${{github.ref_name}}-amd64"
+          EARTHLY_REMOTE_CACHE: "ghcr.io/${{env.CONTAINER_REG}}_cache:build-${{env.CONTAINER_TAG}}-amd64"
 
 
       - name: Build xmldoc
       - name: Build xmldoc
         run: earthly +xmldoc --COMMIT="${{ github.sha }}" --BRANCH="${{ github.ref_name }}"
         run: earthly +xmldoc --COMMIT="${{ github.sha }}" --BRANCH="${{ github.ref_name }}"
@@ -112,7 +114,7 @@ jobs:
         run: earthly +test-all --GITHUB_ACTIONS="$GITHUB_ACTIONS"
         run: earthly +test-all --GITHUB_ACTIONS="$GITHUB_ACTIONS"
         env:
         env:
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
-          EARTHLY_REMOTE_CACHE: "ghcr.io/${{env.CONTAINER_REG}}_cache:test-${{github.ref_name}}-amd64"
+          EARTHLY_REMOTE_CACHE: "ghcr.io/${{env.CONTAINER_REG}}_cache:test-${{env.CONTAINER_TAG}}-amd64"
 
 
   linux-arm64:
   linux-arm64:
     runs-on: ubuntu-18.04
     runs-on: ubuntu-18.04
@@ -146,11 +148,13 @@ jobs:
         if: ${{ !startsWith(github.ref, 'refs/tags/') }}
         if: ${{ !startsWith(github.ref, 'refs/tags/') }}
         run: echo "ADD_REVISION=1" >> $GITHUB_ENV
         run: echo "ADD_REVISION=1" >> $GITHUB_ENV
 
 
-      - name: Set CONTAINER_REG
-        run: echo "CONTAINER_REG=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV
+      - name: Set CONTAINER_ vars
+        run: |
+          echo "CONTAINER_REG=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV;
+          echo "CONTAINER_TAG=$(echo ${{ github.ref_name }} | sed -e 's/[^A-Za-z0-9\.]/-/g')" >> $GITHUB_ENV;
 
 
       - name: Build devcontainer
       - name: Build devcontainer
-        run: earthly --platform=linux/arm64 +devcontainer --ADD_REVISION="$ADD_REVISION" --IMAGE_NAME="ghcr.io/${CONTAINER_REG}_devcontainer" --IMAGE_TAG="${{github.ref_name}}-arm64" --IMAGE_CACHE="ghcr.io/haxefoundation/haxe_devcontainer:development-arm64"
+        run: earthly --platform=linux/arm64 +devcontainer --ADD_REVISION="$ADD_REVISION" --IMAGE_NAME="ghcr.io/${CONTAINER_REG}_devcontainer" --IMAGE_TAG="${CONTAINER_TAG}-arm64" --IMAGE_CACHE="ghcr.io/haxefoundation/haxe_devcontainer:development-arm64"
         env:
         env:
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
           EARTHLY_USE_INLINE_CACHE: true
           EARTHLY_USE_INLINE_CACHE: true
@@ -160,7 +164,7 @@ jobs:
         run: earthly --platform=linux/arm64 +build --ADD_REVISION="$ADD_REVISION"
         run: earthly --platform=linux/arm64 +build --ADD_REVISION="$ADD_REVISION"
         env:
         env:
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
-          EARTHLY_REMOTE_CACHE: "ghcr.io/${{env.CONTAINER_REG}}_cache:build-${{github.ref_name}}-arm64"
+          EARTHLY_REMOTE_CACHE: "ghcr.io/${{env.CONTAINER_REG}}_cache:build-${{env.CONTAINER_TAG}}-arm64"
 
 
       - name: Upload artifact
       - name: Upload artifact
         uses: actions/[email protected]
         uses: actions/[email protected]
@@ -203,14 +207,17 @@ jobs:
         if: ${{ !startsWith(github.ref, 'refs/tags/') }}
         if: ${{ !startsWith(github.ref, 'refs/tags/') }}
         run: echo "ADD_REVISION=1" >> $GITHUB_ENV
         run: echo "ADD_REVISION=1" >> $GITHUB_ENV
 
 
-      - name: Set CONTAINER_REG
-        run: echo "CONTAINER_REG=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV
+      - name: Set CONTAINER_ vars
+        run: |
+          echo "CONTAINER_REG=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV;
+          echo "CONTAINER_TAG=$(echo ${{ github.ref_name }} | sed -e 's/[^A-Za-z0-9\.]/-/g')" >> $GITHUB_ENV;
 
 
       - name: Build devcontainer
       - name: Build devcontainer
-        run: earthly +devcontainer-multiarch --ADD_REVISION="$ADD_REVISION" --IMAGE_NAME="ghcr.io/${CONTAINER_REG}_devcontainer" --IMAGE_TAG="${{github.ref_name}}"
+        run: earthly +devcontainer-multiarch --ADD_REVISION="$ADD_REVISION" --IMAGE_NAME="ghcr.io/${CONTAINER_REG}_devcontainer" --IMAGE_TAG="${CONTAINER_TAG}"
         env:
         env:
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
           EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
           EARTHLY_USE_INLINE_CACHE: true
           EARTHLY_USE_INLINE_CACHE: true
+          EARTHLY_SAVE_INLINE_CACHE: true
 
 
   mac-build:
   mac-build:
     runs-on: macos-latest
     runs-on: macos-latest