Merge branch 'master' into oxid7.0 #118
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
name: Docker Image CI | |
on: [push] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
php: ["8.0", "8.1"] | |
services: | |
mysql: | |
image: mysql:8 | |
env: | |
MYSQL_ROOT_PASSWORD: root | |
MYSQL_DATABASE: oxid | |
ports: | |
- 3306 | |
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 | |
steps: | |
- name: Extract branch name | |
shell: bash | |
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})" | |
id: extract_branch | |
- uses: actions/checkout@v1 | |
- name: enable experimental features | |
run: "sudo mkdir -p /etc/docker && echo '{\"experimental\": true}' | sudo tee /etc/docker/daemon.json" | |
- name: enable experimental features on client | |
run: "mkdir -p ~/.docker && echo '{\"experimental\": \"enabled\"}' | tee ~/.docker/config.json" | |
- name: service restart | |
run: sudo service docker restart | |
- name: Build the PHP Docker image with extensions | |
run: docker build . --squash --file extensions/php${{ matrix.php }}/Dockerfile --build-arg PHP=${{ matrix.php }} --tag oxidprojects/oxid-apache-php:plain-${{ steps.extract_branch.outputs.branch }}-php${{ matrix.php }} --tag ghcr.io/oxidprojects/docker-oxid:plain-${{ steps.extract_branch.outputs.branch }}-php${{ matrix.php }} | |
- name: Build the PHP Docker image with composer | |
run: docker build . --squash --file composer/Dockerfile --build-arg FROM=oxidprojects/oxid-apache-php:plain-${{ steps.extract_branch.outputs.branch }}-php${{ matrix.php }} --build-arg PHP=${{ matrix.php }} --tag oxidprojects/oxid-apache-php:composer-${{ steps.extract_branch.outputs.branch }}-php${{ matrix.php }} --tag ghcr.io/oxidprojects/docker-oxid:composer-${{ steps.extract_branch.outputs.branch }}-php${{ matrix.php }} | |
- name: Build the OXID Docker image | |
run: docker build . --squash --file tools/Dockerfile --build-arg FROM=oxidprojects/oxid-apache-php:composer-${{ steps.extract_branch.outputs.branch }}-php${{ matrix.php }} --build-arg PHP=${{ matrix.php }} --tag oxidprojects/oxid-apache-php:${{ steps.extract_branch.outputs.branch }}-php${{ matrix.php }} --tag ghcr.io/oxidprojects/docker-oxid:${{ steps.extract_branch.outputs.branch }}-php${{ matrix.php }} | |
- name: run the image for testing in background | |
run: docker run --name oxid -d oxidprojects/oxid-apache-php:${{ steps.extract_branch.outputs.branch }}-php${{ matrix.php }} | |
- name: test image | |
run: docker exec oxid composer -v | |
- name: install oxid | |
run: docker exec oxid composer create-project --no-interaction -s dev --no-dev oxid-esales/oxideshop-project . dev-b-7.0-ce | |
# - name: run oxid console | |
# run: docker exec oxid vendor/bin/oe-console | |
- name: Docker Login | |
run: docker login -u ${{ secrets.DOCKER_HUB_USER }} -p ${{ secrets.DOCKER_HUB_PASSWORD }} | |
- name: Log into ghcr | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Publish oxid php${{ matrix.php }} Docker image on Docker Hub | |
run: docker push oxidprojects/oxid-apache-php:${{ steps.extract_branch.outputs.branch }}-php${{ matrix.php }} | |
- name: Publish oxid php${{ matrix.php }} Docker image on GHCR | |
run: docker push ghcr.io/oxidprojects/docker-oxid:${{ steps.extract_branch.outputs.branch }}-php${{ matrix.php }} |