Bump versions of Ruby, Rails & Alpine (#1097) #132
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
env: | |
RUBY_VERSION: 2.7.x | |
name: CI Build Push | |
on: | |
push: | |
branches: | |
- 'master' | |
- '**stable' | |
- 'develop' | |
jobs: | |
main: | |
name: Build Docker Image | |
env: | |
DOCKER_REPOSITORY: ${{ secrets.DOCKER_REPOSITORY }} | |
DOCKER_BUILD_ENABLED: ${{ secrets.DOCKER_BUILD_ENABLED }} | |
DOCKER_BUILD_ALTERNATE_ENABLED: ${{ secrets.DOCKER_BUILD_ALTERNATE_ENABLED }} | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check preconditions | |
id: preconditions | |
shell: bash | |
run: | | |
if [ "${{ env.DOCKER_BUILD_ENABLED }}" == "true" ]; then | |
echo "build=true" >> $GITHUB_OUTPUT | |
fi | |
if [ "${{ env.DOCKER_BUILD_ALTERNATE_ENABLED }}" == "true" ]; then | |
echo "build_alternate=true" >> $GITHUB_OUTPUT | |
fi | |
- name: Build main | |
if: ${{ steps.preconditions.outputs.build }} | |
run: | | |
echo Main is being built | |
- name: Build alternate | |
if: ${{ steps.preconditions.outputs.build && steps.preconditions.outputs.build_alternate }} | |
run: | | |
echo Alternate is being built | |
- name: Checkout | |
if: ${{ steps.preconditions.outputs.build }} | |
uses: actions/checkout@v3 | |
- name: Set up Docker Buildx | |
if: ${{ steps.preconditions.outputs.build }} | |
uses: docker/setup-buildx-action@v2 | |
- name: Cache Docker layers | |
if: ${{ steps.preconditions.outputs.build }} | |
uses: actions/cache@v3 | |
with: | |
path: /tmp/.buildx-cache | |
key: ${{ runner.os }}-buildx-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-buildx- | |
- name: Login to DockerHub | |
if: ${{ steps.preconditions.outputs.build }} | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Extract Docker Repository | |
id: ci_docker_repository | |
if: ${{ steps.preconditions.outputs.build }} | |
shell: bash | |
run: echo "repository=$(echo ${DOCKER_REPOSITORY:-$GITHUB_REPOSITORY})" >> $GITHUB_OUTPUT | |
- name: Extract Branch Name | |
id: ci_branch_name | |
if: ${{ steps.preconditions.outputs.build }} | |
shell: bash | |
run: echo "branch=$(echo ${{github.ref_name}})" >> $GITHUB_OUTPUT | |
- name: Extract Commit Short SHA | |
id: ci_commit_short_sha | |
if: ${{ steps.preconditions.outputs.build }} | |
shell: bash | |
run: echo "short_sha=$(echo ${GITHUB_SHA} | cut -c1-7)" >> $GITHUB_OUTPUT | |
- name: Build and Push nginx | |
if: ${{ steps.preconditions.outputs.build }} | |
uses: docker/build-push-action@v3 | |
with: | |
push: true | |
target: nginx | |
tags: "${{ steps.ci_docker_repository.outputs.repository }}:${{ steps.ci_branch_name.outputs.branch }}-nginx" | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache-new | |
- name: Build and Push api | |
if: ${{ steps.preconditions.outputs.build }} | |
uses: docker/build-push-action@v3 | |
with: | |
push: true | |
target: api | |
tags: | | |
"${{ steps.ci_docker_repository.outputs.repository }}:${{ steps.ci_branch_name.outputs.branch }}" | |
"${{ steps.ci_docker_repository.outputs.repository }}:${{ steps.ci_branch_name.outputs.branch }}-api" | |
build-args: "BUILD_NUMBER=${{ steps.ci_branch_name.outputs.branch }}-${{ steps.ci_commit_short_sha.outputs.short_sha }}" | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache-new | |
- name: Build and Push poller | |
if: ${{ steps.preconditions.outputs.build }} | |
uses: docker/build-push-action@v3 | |
with: | |
push: true | |
target: poller | |
tags: "${{ steps.ci_docker_repository.outputs.repository }}:${{ steps.ci_branch_name.outputs.branch }}-poller" | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache-new | |
- name: Build and Push recording-importer | |
if: ${{ steps.preconditions.outputs.build }} | |
uses: docker/build-push-action@v3 | |
with: | |
push: true | |
target: recording-importer | |
tags: "${{ steps.ci_docker_repository.outputs.repository }}:${{ steps.ci_branch_name.outputs.branch }}-recording-importer" | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache-new | |
# Alternate Images for bbb-focal-260 with alpine | |
- name: Alternate Alpine Build and Push nginx | |
if: ${{ steps.preconditions.outputs.build && steps.preconditions.outputs.build_alternate }} | |
uses: docker/build-push-action@v3 | |
with: | |
file: dockerfiles/v1/focal260-alpine | |
push: true | |
target: nginx | |
tags: "${{ steps.ci_docker_repository.outputs.repository }}:${{ steps.ci_branch_name.outputs.branch }}-focal260-alpine-nginx" | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache-new | |
- name: Alternate Alpine Build and Push api | |
if: ${{ steps.preconditions.outputs.build && steps.preconditions.outputs.build_alternate }} | |
uses: docker/build-push-action@v3 | |
with: | |
file: dockerfiles/v1/focal260-alpine | |
push: true | |
target: api | |
tags: | | |
"${{ steps.ci_docker_repository.outputs.repository }}:${{ steps.ci_branch_name.outputs.branch }}-focal260-alpine" | |
"${{ steps.ci_docker_repository.outputs.repository }}:${{ steps.ci_branch_name.outputs.branch }}-focal260-alpine-api" | |
build-args: "BUILD_NUMBER=${{ steps.ci_branch_name.outputs.branch }}-${{ steps.ci_commit_short_sha.outputs.short_sha }}" | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache-new | |
- name: Alternate Alpine Build and Push poller | |
if: ${{ steps.preconditions.outputs.build && steps.preconditions.outputs.build_alternate }} | |
uses: docker/build-push-action@v3 | |
with: | |
file: dockerfiles/v1/focal260-alpine | |
push: true | |
target: poller | |
tags: "${{ steps.ci_docker_repository.outputs.repository }}:${{ steps.ci_branch_name.outputs.branch }}-focal260-alpine-poller" | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache-new | |
- name: Alternate Alpine Build and Push recording-importer | |
if: ${{ steps.preconditions.outputs.build && steps.preconditions.outputs.build_alternate }} | |
uses: docker/build-push-action@v3 | |
with: | |
file: dockerfiles/v1/focal260-alpine | |
push: true | |
target: recording-importer | |
tags: "${{ steps.ci_docker_repository.outputs.repository }}:${{ steps.ci_branch_name.outputs.branch }}-focal260-alpine-recording-importer" | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache-new | |
# Alternate Images for bbb-focal-260 with amazonlinux | |
- name: Alternate Amazon Linux Build and Push nginx | |
if: ${{ steps.preconditions.outputs.build && steps.preconditions.outputs.build_alternate }} | |
uses: docker/build-push-action@v3 | |
with: | |
file: dockerfiles/v1/focal260-amazonlinux | |
push: true | |
target: nginx | |
tags: "${{ steps.ci_docker_repository.outputs.repository }}:${{ steps.ci_branch_name.outputs.branch }}-focal260-amazonlinux-nginx" | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache-new | |
- name: Alternate Amazon Linux Build and Push api | |
if: ${{ steps.preconditions.outputs.build && steps.preconditions.outputs.build_alternate }} | |
uses: docker/build-push-action@v3 | |
with: | |
file: dockerfiles/v1/focal260-amazonlinux | |
push: true | |
target: api | |
tags: | | |
"${{ steps.ci_docker_repository.outputs.repository }}:${{ steps.ci_branch_name.outputs.branch }}-focal260-amazonlinux" | |
"${{ steps.ci_docker_repository.outputs.repository }}:${{ steps.ci_branch_name.outputs.branch }}-focal260-amazonlinux-api" | |
build-args: "BUILD_NUMBER=${{ steps.ci_branch_name.outputs.branch }}-${{ steps.ci_commit_short_sha.outputs.short_sha }}" | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache-new | |
- name: Alternate Amazon Linux Build and Push poller | |
if: ${{ steps.preconditions.outputs.build && steps.preconditions.outputs.build_alternate }} | |
uses: docker/build-push-action@v3 | |
with: | |
file: dockerfiles/v1/focal260-amazonlinux | |
push: true | |
target: poller | |
tags: "${{ steps.ci_docker_repository.outputs.repository }}:${{ steps.ci_branch_name.outputs.branch }}-focal260-amazonlinux-poller" | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache-new | |
- name: Alternate Amazon Linux Build and Push recording-importer | |
if: ${{ steps.preconditions.outputs.build && steps.preconditions.outputs.build_alternate }} | |
uses: docker/build-push-action@v3 | |
with: | |
file: dockerfiles/v1/focal260-amazonlinux | |
push: true | |
target: recording-importer | |
tags: "${{ steps.ci_docker_repository.outputs.repository }}:${{ steps.ci_branch_name.outputs.branch }}-focal260-amazonlinux-recording-importer" | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache-new | |
- name: Move cache | |
if: ${{ steps.preconditions.outputs.build }} | |
run: | | |
rm -rf /tmp/.buildx-cache | |
mv /tmp/.buildx-cache-new /tmp/.buildx-cache |