Skip to content

Commit

Permalink
Enhancement: Determine composer version once
Browse files Browse the repository at this point in the history
  • Loading branch information
localheinz committed Feb 18, 2024
1 parent 8c3b7a3 commit 1ba5068
Show file tree
Hide file tree
Showing 4 changed files with 104 additions and 80 deletions.
54 changes: 30 additions & 24 deletions .github/workflows/v1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@ jobs:
- "1.10"
steps:
- uses: actions/checkout@v4
- name: Determine composer version from Dockerfile
working-directory: ${{ matrix.version }}
run: |
echo "COMPOSER_VERSION_MAJOR=$(grep -oP 'COMPOSER_VERSION \d+\.\d+\.\d+' Dockerfile | sed '/COMPOSER_VERSION /s///' | grep -oP '^\d+')" >> $GITHUB_ENV
echo "COMPOSER_VERSION_MAJOR_MINOR=$(grep -oP 'COMPOSER_VERSION \d+\.\d+\.\d+' Dockerfile | sed '/COMPOSER_VERSION /s///' | grep -oP '^\d+\.\d+')" >> $GITHUB_ENV
echo "COMPOSER_VERSION_MAJOR_MINOR_PATCH=$(grep -oP 'COMPOSER_VERSION \d+\.\d+\.\d+' Dockerfile | sed '/COMPOSER_VERSION /s///')" >> $GITHUB_ENV
# Build full image: binary with runtime
- name: Build full image
working-directory: ${{ matrix.version }}
Expand All @@ -30,9 +36,9 @@ jobs:
--pull \
--no-cache \
--target binary-with-runtime \
--tag composer/composer:1 \
--tag composer/composer:${{ matrix.version }} \
--tag composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+') \
--tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR }} \
--tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR }} \
--tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }} \
.
# Build low-size image with binary only
- name: Build binary-only image
Expand All @@ -42,9 +48,9 @@ jobs:
--pull \
--no-cache \
--target standalone-binary \
--tag composer/composer:1-bin \
--tag composer/composer:${{ matrix.version }}-bin \
--tag composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin \
--tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR }}-bin \
--tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}-bin \
--tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}-bin \
.
- name: Login to Docker Hub
if: github.ref == 'refs/heads/main'
Expand All @@ -56,12 +62,12 @@ jobs:
if: github.ref == 'refs/heads/main'
working-directory: ${{ matrix.version }}
run: |
docker push composer/composer:1
docker push composer/composer:1-bin
docker push composer/composer:${{ matrix.version }}
docker push composer/composer:${{ matrix.version }}-bin
docker push composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')
docker push composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin
docker push composer/composer:${{ env.COMPOSER_VERSION_MAJOR }}
docker push composer/composer:${{ env.COMPOSER_VERSION_MAJOR }}-bin
docker push composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}
docker push composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}-bin
docker push composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}
docker push composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}-bin
- name: Login to Amazon Public ECR
if: github.ref == 'refs/heads/main'
uses: docker/login-action@v3
Expand All @@ -73,15 +79,15 @@ jobs:
if: github.ref == 'refs/heads/main'
working-directory: ${{ matrix.version }}
run: |
docker tag composer/composer:1 ${{ env.ECR_REPO }}:1
docker tag composer/composer:1-bin ${{ env.ECR_REPO }}:1-bin
docker tag composer/composer:${{ matrix.version }} ${{ env.ECR_REPO }}:${{ matrix.version }}
docker tag composer/composer:${{ matrix.version }}-bin ${{ env.ECR_REPO }}:${{ matrix.version }}-bin
docker tag composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+') ${{ env.ECR_REPO }}:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')
docker tag composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin ${{ env.ECR_REPO }}:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin
docker push ${{ env.ECR_REPO }}:1
docker push ${{ env.ECR_REPO }}:1-bin
docker push ${{ env.ECR_REPO }}:${{ matrix.version }}
docker push ${{ env.ECR_REPO }}:${{ matrix.version }}-bin
docker push ${{ env.ECR_REPO }}:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')
docker push ${{ env.ECR_REPO }}:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin
docker tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR }} ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR }}
docker tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR }}-bin ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR }}-bin
docker tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR }} ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}
docker tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}-bin ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}-bin
docker tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }} ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}
docker tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}-bin ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}-bin
docker push ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR }}
docker push ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR }}-bin
docker push ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}
docker push ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}-bin
docker push ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}
docker push ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}-bin
54 changes: 30 additions & 24 deletions .github/workflows/v2-current.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@ jobs:
- "2.7"
steps:
- uses: actions/checkout@v4
- name: Determine composer version from Dockerfile
working-directory: ${{ matrix.version }}
run: |
echo "COMPOSER_VERSION_MAJOR=$(grep -oP 'COMPOSER_VERSION \d+\.\d+\.\d+' Dockerfile | sed '/COMPOSER_VERSION /s///' | grep -oP '^\d+')" >> $GITHUB_ENV
echo "COMPOSER_VERSION_MAJOR_MINOR=$(grep -oP 'COMPOSER_VERSION \d+\.\d+\.\d+' Dockerfile | sed '/COMPOSER_VERSION /s///' | grep -oP '^\d+\.\d+')" >> $GITHUB_ENV
echo "COMPOSER_VERSION_MAJOR_MINOR_PATCH=$(grep -oP 'COMPOSER_VERSION \d+\.\d+\.\d+' Dockerfile | sed '/COMPOSER_VERSION /s///')" >> $GITHUB_ENV
# Build full image: binary with runtime
- name: Build full image
working-directory: ${{ matrix.version }}
Expand All @@ -31,9 +37,9 @@ jobs:
--no-cache \
--target binary-with-runtime \
--tag composer/composer:latest \
--tag composer/composer:2 \
--tag composer/composer:${{ matrix.version }} \
--tag composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+') \
--tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR }} \
--tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR }} \
--tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }} \
.
# Build low-size image with binary only
- name: Build binary-only image
Expand All @@ -44,9 +50,9 @@ jobs:
--no-cache \
--target standalone-binary \
--tag composer/composer:latest-bin \
--tag composer/composer:2-bin \
--tag composer/composer:${{ matrix.version }}-bin \
--tag composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin \
--tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR }}-bin \
--tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}-bin \
--tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}-bin \
.
- name: Login to Docker Hub
if: github.ref == 'refs/heads/main'
Expand All @@ -60,12 +66,12 @@ jobs:
run: |
docker push composer/composer:latest
docker push composer/composer:latest-bin
docker push composer/composer:2
docker push composer/composer:2-bin
docker push composer/composer:${{ matrix.version }}
docker push composer/composer:${{ matrix.version }}-bin
docker push composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')
docker push composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin
docker push composer/composer:${{ env.COMPOSER_VERSION_MAJOR }}
docker push composer/composer:${{ env.COMPOSER_VERSION_MAJOR }}-bin
docker push composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}
docker push composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}-bin
docker push composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}
docker push composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}-bin
- name: Login to Amazon Public ECR
if: github.ref == 'refs/heads/main'
uses: docker/login-action@v3
Expand All @@ -79,17 +85,17 @@ jobs:
run: |
docker tag composer/composer:latest ${{ env.ECR_REPO }}:latest
docker tag composer/composer:latest-bin ${{ env.ECR_REPO }}:latest-bin
docker tag composer/composer:2 ${{ env.ECR_REPO }}:2
docker tag composer/composer:2-bin ${{ env.ECR_REPO }}:2-bin
docker tag composer/composer:${{ matrix.version }} ${{ env.ECR_REPO }}:${{ matrix.version }}
docker tag composer/composer:${{ matrix.version }}-bin ${{ env.ECR_REPO }}:${{ matrix.version }}-bin
docker tag composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+') ${{ env.ECR_REPO }}:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')
docker tag composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+') ${{ env.ECR_REPO }}:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin
docker tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR }} ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR }}
docker tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR }}-bin ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR }}-bin
docker tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR }} ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}
docker tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}-bin ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}-bin
docker tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }} ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}
docker tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}-bin ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}-bin
docker push ${{ env.ECR_REPO }}:latest
docker push ${{ env.ECR_REPO }}:latest-bin
docker push ${{ env.ECR_REPO }}:2
docker push ${{ env.ECR_REPO }}:2-bin
docker push ${{ env.ECR_REPO }}:${{ matrix.version }}
docker push ${{ env.ECR_REPO }}:${{ matrix.version }}-bin
docker push ${{ env.ECR_REPO }}:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')
docker push ${{ env.ECR_REPO }}:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin
docker push ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR }}
docker push ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR }}-bin
docker push ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}
docker push ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}-bin
docker push ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}
docker push ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}-bin
38 changes: 22 additions & 16 deletions .github/workflows/v2-lts.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@ jobs:
- "2.2"
steps:
- uses: actions/checkout@v4
- name: Determine composer version from Dockerfile
working-directory: ${{ matrix.version }}
run: |
echo "COMPOSER_VERSION_MAJOR=$(grep -oP 'COMPOSER_VERSION \d+\.\d+\.\d+' Dockerfile | sed '/COMPOSER_VERSION /s///' | grep -oP '^\d+')" >> $GITHUB_ENV
echo "COMPOSER_VERSION_MAJOR_MINOR=$(grep -oP 'COMPOSER_VERSION \d+\.\d+\.\d+' Dockerfile | sed '/COMPOSER_VERSION /s///' | grep -oP '^\d+\.\d+')" >> $GITHUB_ENV
echo "COMPOSER_VERSION_MAJOR_MINOR_PATCH=$(grep -oP 'COMPOSER_VERSION \d+\.\d+\.\d+' Dockerfile | sed '/COMPOSER_VERSION /s///')" >> $GITHUB_ENV
# Build full image: binary with runtime
- name: Build full image
working-directory: ${{ matrix.version }}
Expand All @@ -31,8 +37,8 @@ jobs:
--no-cache \
--target binary-with-runtime \
--tag composer/composer:lts \
--tag composer/composer:${{ matrix.version }} \
--tag composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+') \
--tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR }} \
--tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }} \
.
# Build low-size image with binary only
- name: Build binary-only image
Expand All @@ -43,8 +49,8 @@ jobs:
--no-cache \
--target standalone-binary \
--tag composer/composer:lts-bin \
--tag composer/composer:${{ matrix.version }}-bin \
--tag composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin \
--tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}-bin \
--tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}-bin \
.
- name: Login to Docker Hub
if: github.ref == 'refs/heads/main'
Expand All @@ -58,10 +64,10 @@ jobs:
run: |
docker push composer/composer:lts
docker push composer/composer:lts-bin
docker push composer/composer:${{ matrix.version }}
docker push composer/composer:${{ matrix.version }}-bin
docker push composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')
docker push composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin
docker push composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}
docker push composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}-bin
docker push composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}
docker push composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}-bin
- name: Login to Amazon Public ECR
if: github.ref == 'refs/heads/main'
uses: docker/login-action@v3
Expand All @@ -75,13 +81,13 @@ jobs:
run: |
docker tag composer/composer:lts ${{ env.ECR_REPO }}:lts
docker tag composer/composer:lts-bin ${{ env.ECR_REPO }}:lts-bin
docker tag composer/composer:${{ matrix.version }} ${{ env.ECR_REPO }}:${{ matrix.version }}
docker tag composer/composer:${{ matrix.version }}-bin ${{ env.ECR_REPO }}:${{ matrix.version }}-bin
docker tag composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+') ${{ env.ECR_REPO }}:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')
docker tag composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin ${{ env.ECR_REPO }}:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin
docker tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR }} ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}
docker tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}-bin ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}-bin
docker tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }} ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}
docker tag composer/composer:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}-bin ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}-bin
docker push ${{ env.ECR_REPO }}:lts
docker push ${{ env.ECR_REPO }}:lts-bin
docker push ${{ env.ECR_REPO }}:${{ matrix.version }}
docker push ${{ env.ECR_REPO }}:${{ matrix.version }}-bin
docker push ${{ env.ECR_REPO }}:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')
docker push ${{ env.ECR_REPO }}:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin
docker push ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}
docker push ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR }}-bin
docker push ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}
docker push ${{ env.ECR_REPO }}:${{ env.COMPOSER_VERSION_MAJOR_MINOR_PATCH }}-bin
Loading

0 comments on commit 1ba5068

Please sign in to comment.