diff --git a/.github/workflows/shellcheck.yaml b/.github/workflows/shellcheck.yaml index 59d9c9a..623faee 100644 --- a/.github/workflows/shellcheck.yaml +++ b/.github/workflows/shellcheck.yaml @@ -4,15 +4,15 @@ on: pull_request: null push: paths: - - .github/workflows/shellcheck.yaml - - '**.sh' + - .github/workflows/shellcheck.yaml + - '**.sh' jobs: shellcheck: name: ShellCheck runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v2 - - name: ShellCheck - run: find . -type f -name '*.sh' | grep -v generate-stackbrew-library | xargs shellcheck + - name: Checkout + uses: actions/checkout@v2 + - name: ShellCheck + run: find . -type f -name '*.sh' | grep -v generate-stackbrew-library | xargs shellcheck diff --git a/.github/workflows/v1.yaml b/.github/workflows/v1.yaml index bc9afd3..b595d1e 100644 --- a/.github/workflows/v1.yaml +++ b/.github/workflows/v1.yaml @@ -4,8 +4,8 @@ on: pull_request: null push: paths: - - .github/workflows/v1.yaml - - '1.10/**' + - .github/workflows/v1.yaml + - '1.10/**' env: AWS_REGION: us-east-1 @@ -20,63 +20,63 @@ jobs: run: working-directory: '1.10' steps: - - uses: actions/checkout@v3 - # Build full image: binary with runtime - - name: Build full image - run: | - docker build \ - --pull \ - --no-cache \ - --target binary-with-runtime \ - --tag composer/composer:1 \ - --tag composer/composer:1.10 \ - --tag composer/composer:$(grep -oP 'COMPOSER_VERSION 1.10.\d+' Dockerfile | grep -oP '1.10.\d+') \ - . - # Build low-size image with binary only - - name: Build binary-only image - run: | - docker build \ - --pull \ - --no-cache \ - --target standalone-binary \ - --tag composer/composer:1-bin \ - --tag composer/composer:1.10-bin \ - --tag composer/composer:$(grep -oP 'COMPOSER_VERSION 1.10.\d+' Dockerfile | grep -oP '1.10.\d+')-bin \ - . - - name: Login to Docker Hub - if: github.ref == 'refs/heads/main' - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} - - name: Push tag(s) to Docker Hub - if: github.ref == 'refs/heads/main' - run: | - docker push composer/composer:1 - docker push composer/composer:1-bin - docker push composer/composer:1.10 - docker push composer/composer:1.10-bin - docker push composer/composer:$(grep -oP 'COMPOSER_VERSION 1.10.\d+' Dockerfile | grep -oP '1.10.\d+') - docker push composer/composer:$(grep -oP 'COMPOSER_VERSION 1.10.\d+' Dockerfile | grep -oP '1.10.\d+')-bin - - name: Login to Amazon Public ECR - if: github.ref == 'refs/heads/main' - uses: docker/login-action@v1 - with: - registry: public.ecr.aws - username: ${{ secrets.AWS_ECR_ACCESS_KEY }} - password: ${{ secrets.AWS_ECR_SECRET_KEY }} - - name: Push tag(s) to Amazon Public ECR - if: github.ref == 'refs/heads/main' - run: | - docker tag composer/composer:1 $ECR_REPO:1 - docker tag composer/composer:1-bin $ECR_REPO:1-bin - docker tag composer/composer:1.10 $ECR_REPO:1.10 - docker tag composer/composer:1.10-bin $ECR_REPO:1.10-bin - docker tag composer/composer:$(grep -oP 'COMPOSER_VERSION 1.10.\d+' Dockerfile | grep -oP '1.10.\d+') $ECR_REPO:$(grep -oP 'COMPOSER_VERSION 1.10.\d+' Dockerfile | grep -oP '1.10.\d+') - docker tag composer/composer:$(grep -oP 'COMPOSER_VERSION 1.10.\d+' Dockerfile | grep -oP '1.10.\d+')-bin $ECR_REPO:$(grep -oP 'COMPOSER_VERSION 1.10.\d+' Dockerfile | grep -oP '1.10.\d+')-bin - docker push $ECR_REPO:1 - docker push $ECR_REPO:1-bin - docker push $ECR_REPO:1.10 - docker push $ECR_REPO:1.10-bin - docker push $ECR_REPO:$(grep -oP 'COMPOSER_VERSION 1.10.\d+' Dockerfile | grep -oP '1.10.\d+') - docker push $ECR_REPO:$(grep -oP 'COMPOSER_VERSION 1.10.\d+' Dockerfile | grep -oP '1.10.\d+')-bin + - uses: actions/checkout@v3 + # Build full image: binary with runtime + - name: Build full image + run: | + docker build \ + --pull \ + --no-cache \ + --target binary-with-runtime \ + --tag composer/composer:1 \ + --tag composer/composer:1.10 \ + --tag composer/composer:$(grep -oP 'COMPOSER_VERSION 1.10.\d+' Dockerfile | grep -oP '1.10.\d+') \ + . + # Build low-size image with binary only + - name: Build binary-only image + run: | + docker build \ + --pull \ + --no-cache \ + --target standalone-binary \ + --tag composer/composer:1-bin \ + --tag composer/composer:1.10-bin \ + --tag composer/composer:$(grep -oP 'COMPOSER_VERSION 1.10.\d+' Dockerfile | grep -oP '1.10.\d+')-bin \ + . + - name: Login to Docker Hub + if: github.ref == 'refs/heads/main' + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + - name: Push tag(s) to Docker Hub + if: github.ref == 'refs/heads/main' + run: | + docker push composer/composer:1 + docker push composer/composer:1-bin + docker push composer/composer:1.10 + docker push composer/composer:1.10-bin + docker push composer/composer:$(grep -oP 'COMPOSER_VERSION 1.10.\d+' Dockerfile | grep -oP '1.10.\d+') + docker push composer/composer:$(grep -oP 'COMPOSER_VERSION 1.10.\d+' Dockerfile | grep -oP '1.10.\d+')-bin + - name: Login to Amazon Public ECR + if: github.ref == 'refs/heads/main' + uses: docker/login-action@v1 + with: + registry: public.ecr.aws + username: ${{ secrets.AWS_ECR_ACCESS_KEY }} + password: ${{ secrets.AWS_ECR_SECRET_KEY }} + - name: Push tag(s) to Amazon Public ECR + if: github.ref == 'refs/heads/main' + run: | + docker tag composer/composer:1 $ECR_REPO:1 + docker tag composer/composer:1-bin $ECR_REPO:1-bin + docker tag composer/composer:1.10 $ECR_REPO:1.10 + docker tag composer/composer:1.10-bin $ECR_REPO:1.10-bin + docker tag composer/composer:$(grep -oP 'COMPOSER_VERSION 1.10.\d+' Dockerfile | grep -oP '1.10.\d+') $ECR_REPO:$(grep -oP 'COMPOSER_VERSION 1.10.\d+' Dockerfile | grep -oP '1.10.\d+') + docker tag composer/composer:$(grep -oP 'COMPOSER_VERSION 1.10.\d+' Dockerfile | grep -oP '1.10.\d+')-bin $ECR_REPO:$(grep -oP 'COMPOSER_VERSION 1.10.\d+' Dockerfile | grep -oP '1.10.\d+')-bin + docker push $ECR_REPO:1 + docker push $ECR_REPO:1-bin + docker push $ECR_REPO:1.10 + docker push $ECR_REPO:1.10-bin + docker push $ECR_REPO:$(grep -oP 'COMPOSER_VERSION 1.10.\d+' Dockerfile | grep -oP '1.10.\d+') + docker push $ECR_REPO:$(grep -oP 'COMPOSER_VERSION 1.10.\d+' Dockerfile | grep -oP '1.10.\d+')-bin diff --git a/.github/workflows/v2.yaml b/.github/workflows/v2.yaml index 0ffa55c..ded205d 100644 --- a/.github/workflows/v2.yaml +++ b/.github/workflows/v2.yaml @@ -4,8 +4,8 @@ on: pull_request: null push: paths: - - .github/workflows/v2.yaml - - '2.*/**' + - .github/workflows/v2.yaml + - '2.*/**' env: AWS_REGION: us-east-1 @@ -21,70 +21,70 @@ jobs: version: - "2.2" steps: - - uses: actions/checkout@v3 - # Build full image: binary with runtime - - name: Build full image - working-directory: ${{ matrix.version }} - run: | - docker build \ - --pull \ - --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+') \ - . - # Build low-size image with binary only - - name: Build binary-only image - working-directory: ${{ matrix.version }} - run: | - docker build \ - --pull \ - --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 \ - . - - name: Login to Docker Hub - if: github.ref == 'refs/heads/main' - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} - - name: Push tag(s) to Docker Hub - if: github.ref == 'refs/heads/main' - working-directory: ${{ matrix.version }} - 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 - - name: Login to Amazon Public ECR - if: github.ref == 'refs/heads/main' - uses: docker/login-action@v1 - with: - registry: public.ecr.aws - username: ${{ secrets.AWS_ECR_ACCESS_KEY }} - password: ${{ secrets.AWS_ECR_SECRET_KEY }} - - name: Push tag(s) to Amazon Public ECR - if: github.ref == 'refs/heads/main' - working-directory: ${{ matrix.version }} - run: | - docker tag composer/composer:lts $ECR_REPO:lts - docker tag composer/composer:lts-bin $ECR_REPO:lts-bin - docker tag composer/composer:${{ matrix.version }} $ECR_REPO:${{ matrix.version }} - docker tag composer/composer:${{ matrix.version }}-bin $ECR_REPO:${{ matrix.version }}-bin - docker tag composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+') $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 $ECR_REPO:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin - docker push $ECR_REPO:lts - docker push $ECR_REPO:lts-bin - docker push $ECR_REPO:${{ matrix.version }} - docker push $ECR_REPO:${{ matrix.version }}-bin - docker push $ECR_REPO:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+') - docker push $ECR_REPO:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin + - uses: actions/checkout@v3 + # Build full image: binary with runtime + - name: Build full image + working-directory: ${{ matrix.version }} + run: | + docker build \ + --pull \ + --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+') \ + . + # Build low-size image with binary only + - name: Build binary-only image + working-directory: ${{ matrix.version }} + run: | + docker build \ + --pull \ + --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 \ + . + - name: Login to Docker Hub + if: github.ref == 'refs/heads/main' + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + - name: Push tag(s) to Docker Hub + if: github.ref == 'refs/heads/main' + working-directory: ${{ matrix.version }} + 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 + - name: Login to Amazon Public ECR + if: github.ref == 'refs/heads/main' + uses: docker/login-action@v1 + with: + registry: public.ecr.aws + username: ${{ secrets.AWS_ECR_ACCESS_KEY }} + password: ${{ secrets.AWS_ECR_SECRET_KEY }} + - name: Push tag(s) to Amazon Public ECR + if: github.ref == 'refs/heads/main' + working-directory: ${{ matrix.version }} + run: | + docker tag composer/composer:lts $ECR_REPO:lts + docker tag composer/composer:lts-bin $ECR_REPO:lts-bin + docker tag composer/composer:${{ matrix.version }} $ECR_REPO:${{ matrix.version }} + docker tag composer/composer:${{ matrix.version }}-bin $ECR_REPO:${{ matrix.version }}-bin + docker tag composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+') $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 $ECR_REPO:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin + docker push $ECR_REPO:lts + docker push $ECR_REPO:lts-bin + docker push $ECR_REPO:${{ matrix.version }} + docker push $ECR_REPO:${{ matrix.version }}-bin + docker push $ECR_REPO:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+') + docker push $ECR_REPO:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin build-previous: name: Build previous versions @@ -98,62 +98,62 @@ jobs: - "2.4" - "2.5" steps: - - uses: actions/checkout@v3 - # Build full image: binary with runtime - - name: Build full image - working-directory: ${{ matrix.version }} - run: | - docker build \ - --pull \ - --no-cache \ - --target binary-with-runtime \ - --tag composer/composer:${{ matrix.version }} \ - --tag composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+') \ - . - # Build low-size image with binary only - - name: Build binary-only image - working-directory: ${{ matrix.version }} - run: | - docker build \ - --pull \ - --no-cache \ - --target standalone-binary \ - --tag composer/composer:${{ matrix.version }}-bin \ - --tag composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin \ - . - - name: Login to Docker Hub - if: github.ref == 'refs/heads/main' - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} - - name: Push tag(s) to Docker Hub - if: github.ref == 'refs/heads/main' - working-directory: ${{ matrix.version }} - run: | - 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 - - name: Login to Amazon Public ECR - if: github.ref == 'refs/heads/main' - uses: docker/login-action@v1 - with: - registry: public.ecr.aws - username: ${{ secrets.AWS_ECR_ACCESS_KEY }} - password: ${{ secrets.AWS_ECR_SECRET_KEY }} - - name: Push tag(s) to Amazon Public ECR - if: github.ref == 'refs/heads/main' - working-directory: ${{ matrix.version }} - run: | - docker tag composer/composer:${{ matrix.version }} $ECR_REPO:${{ matrix.version }} - docker tag composer/composer:${{ matrix.version }}-bin $ECR_REPO:${{ matrix.version }}-bin - docker tag composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+') $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 $ECR_REPO:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin - docker push $ECR_REPO:${{ matrix.version }} - docker push $ECR_REPO:${{ matrix.version }}-bin - docker push $ECR_REPO:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+') - docker push $ECR_REPO:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin + - uses: actions/checkout@v3 + # Build full image: binary with runtime + - name: Build full image + working-directory: ${{ matrix.version }} + run: | + docker build \ + --pull \ + --no-cache \ + --target binary-with-runtime \ + --tag composer/composer:${{ matrix.version }} \ + --tag composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+') \ + . + # Build low-size image with binary only + - name: Build binary-only image + working-directory: ${{ matrix.version }} + run: | + docker build \ + --pull \ + --no-cache \ + --target standalone-binary \ + --tag composer/composer:${{ matrix.version }}-bin \ + --tag composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin \ + . + - name: Login to Docker Hub + if: github.ref == 'refs/heads/main' + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + - name: Push tag(s) to Docker Hub + if: github.ref == 'refs/heads/main' + working-directory: ${{ matrix.version }} + run: | + 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 + - name: Login to Amazon Public ECR + if: github.ref == 'refs/heads/main' + uses: docker/login-action@v1 + with: + registry: public.ecr.aws + username: ${{ secrets.AWS_ECR_ACCESS_KEY }} + password: ${{ secrets.AWS_ECR_SECRET_KEY }} + - name: Push tag(s) to Amazon Public ECR + if: github.ref == 'refs/heads/main' + working-directory: ${{ matrix.version }} + run: | + docker tag composer/composer:${{ matrix.version }} $ECR_REPO:${{ matrix.version }} + docker tag composer/composer:${{ matrix.version }}-bin $ECR_REPO:${{ matrix.version }}-bin + docker tag composer/composer:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+') $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 $ECR_REPO:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin + docker push $ECR_REPO:${{ matrix.version }} + docker push $ECR_REPO:${{ matrix.version }}-bin + docker push $ECR_REPO:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+') + docker push $ECR_REPO:$(grep -oP 'COMPOSER_VERSION ${{ matrix.version }}.\d+' Dockerfile | grep -oP '${{ matrix.version }}.\d+')-bin build-latest: name: Build latest version