Skip to content

Merge pull request #51 from pasindu07/php-8.2-rhel-9 #13

Merge pull request #51 from pasindu07/php-8.2-rhel-9

Merge pull request #51 from pasindu07/php-8.2-rhel-9 #13

name: OrangeHRM DEV Image Build Workflow
on:
push:
branches: [ php-8.2-rhel-9 ]
schedule:
- cron: '30 0 * * MON' # 0030 in UTC, 0600 in IST
workflow_dispatch:
env:
REGISTRY: hub.docker.com
DOCKER_HUB_REPO: "orangehrm/dev-environment"
LATEST_TAG_NAME: "rhel9-php8.2-latest"
UPSTREAM_REPO: "orangehrm/orangehrm-dev-environment"
UPSTREAM_BRANCH: "refs/heads/php-8.2-rhel-9"
OS_VERSION: "rhel9"
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Verify prerequisites
run: |
docker --version
docker compose --version
composer --version
- name: Install test suite dependencies
run: composer install
- name: Build docker image
run: docker build -t ${{ env.DOCKER_HUB_REPO }}:${{ env.LATEST_TAG_NAME }} --build-arg REDHAT_USERNAME=${{ secrets.REDHAT_USERNAME }} --build-arg REDHAT_PASSWORD=${{ secrets.REDHAT_PASSWORD }} docker-image
- name: Spin up the container
run: |
docker compose up -d
docker ps -a
- name: Run unit test suite
run: |
sleep 10s
php vendor/bin/codecept run unit
- name: Get installed php version
run: echo "PHP_VERSION=${{ env.OS_VERSION }}-php$(docker exec $(docker ps --format '{{.Names}}' | head -n 1) php -r 'echo PHP_VERSION;')" >> $GITHUB_ENV
- name: Set TAG_NAME with date
run: |
CURRENT_DATE=$(date +'%d%m%y')
echo VERSION_TAG_NAME="${{ env.PHP_VERSION }}-${CURRENT_DATE}" >> $GITHUB_ENV
- name: New image with a version tag & latest tag
run: |
docker tag ${{ env.DOCKER_HUB_REPO }}:${{ env.LATEST_TAG_NAME }} ${{ env.DOCKER_HUB_REPO }}:${{ env.VERSION_TAG_NAME }}
- name: Docker hub login
if: ${{ github.repository == env.UPSTREAM_REPO && github.ref == env.UPSTREAM_BRANCH }}
run: docker login -u=${{ secrets.DOCKER_HUB_USERNAME }} -p=${{ secrets.DOCKER_HUB_PASSWORD }}
- name: Deploy changes to the docker hub with version tag
if: ${{ github.repository == env.UPSTREAM_REPO && github.ref == env.UPSTREAM_BRANCH }}
run: |
docker push ${{ env.DOCKER_HUB_REPO }}:${{ env.VERSION_TAG_NAME }}
echo 'SUCCESS - IMAGE WAS PUBLISHED ${{ env.DOCKER_HUB_REPO }}:${{ env.VERSION_TAG_NAME }}'
- name: Deploy changes to the docker hub with latest tag
if: ${{ github.repository == env.UPSTREAM_REPO && github.ref == env.UPSTREAM_BRANCH }}
run: |
docker push ${{ env.DOCKER_HUB_REPO }}:${{ env.LATEST_TAG_NAME }}
echo 'SUCCESS - IMAGE WAS PUBLISHED ${{ env.DOCKER_HUB_REPO }}:${{ env.LATEST_TAG_NAME }}'
- name: Docker hub logout
if: ${{ github.repository == env.UPSTREAM_REPO && github.ref == env.UPSTREAM_BRANCH }}
run: docker logout
# - name: Send mail on workflow completion with status
# if: always()
# uses: dawidd6/action-send-mail@v3
# with:
# server_address: ${{secrets.MAIL_SERVER_ADDRESS}}
# server_port: ${{secrets.MAIL_SERVER_PORT}}
# username: ${{secrets.MAIL_USERNAME}}
# password: ${{secrets.MAIL_PASSWORD}}
# subject: ${{ github.job }} job of ${{ github.repository }} - Status: ${{ job.status }}
# body: ${{ github.job }} job in workflow ${{ github.workflow }} of ${{ github.repository }} - Status: ${{ job.status }}
# to: [email protected]
# from: [email protected]
## secure: true
# - name: Send email on version change
# if: ${{ env.TAG_NAME != env.VERSION_TAG_NAME }}
# uses: dawidd6/action-send-mail@v3
# with:
# server_address: ${{secrets.MAIL_SERVER_ADDRESS}}
# server_port: ${{secrets.MAIL_SERVER_PORT}}
# username: ${{secrets.MAIL_USERNAME}}
# password: ${{secrets.MAIL_PASSWORD}}
# subject: PHP Version of ${{ github.repository }} Changed
# body: Latest Image of ${{ github.repository }} has been replaced with ${{ env.VERSION_TAG_NAME }}
# to: [email protected]
# from: [email protected]
## secure: true