# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json name: build on: push: branches: - "master" workflow_dispatch: {} defaults: run: shell: sh jobs: build: runs-on: alpine-3.16 steps: - uses: https://gitea.com/actions/checkout@v3 - name: eslint run: npx eslint js - name: phpstan run: php81 -d memory_limit=-1 ./vendor/bin/phpstan --memory-limit=2G - run: echo REPO_TIMESTAMP=$(git --git-dir '.git' --no-pager log --pretty='%ct' -n1 HEAD) >> $GITHUB_ENV - run: echo REPO_COMMIT=$(git --git-dir '.git' --no-pager log --pretty='%h' -n1 HEAD) >> $GITHUB_ENV - run: echo REPO_COMMIT_FULL=$(git --git-dir '.git' --no-pager log --pretty='%H' -n1 HEAD) >> $GITHUB_ENV - run: echo BUILD_TAG=$(date -d @${REPO_TIMESTAMP} +%y.%m)-${REPO_COMMIT} >> $GITHUB_ENV - name: setup buildx uses: https://github.com/docker/setup-buildx-action@v2 - name: login into registry run: | BASE64_AUTH=`echo -n "$REGISTRY_USER:$REGISTRY_PASSWORD" | base64` mkdir -p ~/.docker echo "{\"auths\": {\"registry-rw.fakecake.org\": {\"auth\": \"$BASE64_AUTH\"}}}" > ~/.docker/config.json env: REGISTRY_USER: ${{ secrets.REGISTRY_USER }} REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }} if: ${{ !!secrets.REGISTRY_PUSH_ENABLED }} - name: build web-nginx image uses: https://github.com/docker/build-push-action@v4 with: push: ${{ !!secrets.REGISTRY_PUSH_ENABLED }} context: .docker/web-nginx tags: | registry-rw.fakecake.org/cthulhoo/the-epube-web-nginx:latest registry-rw.fakecake.org/cthulhoo/the-epube-web-nginx:${{ env.BUILD_TAG }} provenance: false - name: build dict image uses: https://github.com/docker/build-push-action@v4 with: push: ${{ !!secrets.REGISTRY_PUSH_ENABLED }} context: .docker/dict tags: | registry-rw.fakecake.org/cthulhoo/the-epube-dict:latest registry-rw.fakecake.org/cthulhoo/the-epube-dict:${{ env.BUILD_TAG }} provenance: false - name: build app image uses: https://github.com/docker/build-push-action@v4 with: push: ${{ !!secrets.REGISTRY_PUSH_ENABLED }} context: .docker/app build-contexts: app-src=. tags: | registry-rw.fakecake.org/cthulhoo/the-epube-fpm-static:latest registry-rw.fakecake.org/cthulhoo/the-epube-fpm-static:${{ env.BUILD_TAG }} provenance: false - name: login into docker hub run: | BASE64_AUTH=`echo -n "$REGISTRY_USER:$REGISTRY_PASSWORD" | base64` mkdir -p ~/.docker echo "{\"auths\": {\"$REGISTRY_HOST\": {\"auth\": \"$BASE64_AUTH\"}}}" > ~/.docker/config.json env: REGISTRY_USER: ${{ secrets.REGISTRY_GITHUB_USER }} REGISTRY_PASSWORD: ${{ secrets.REGISTRY_GITHUB_ACCESS_TOKEN }} REGISTRY_HOST: https://index.docker.io/v1/ if: ${{ !!secrets.REGISTRY_GITHUB_PUSH_ENABLED }} - name: build web-nginx image uses: https://github.com/docker/build-push-action@v4 with: push: ${{ !!secrets.REGISTRY_GITHUB_PUSH_ENABLED }} context: .docker/web-nginx tags: | cthulhoo/the-epube-web-nginx:latest cthulhoo/the-epube-web-nginx:${{ env.BUILD_TAG }} provenance: false - name: build dict image uses: https://github.com/docker/build-push-action@v4 with: push: ${{ !!secrets.REGISTRY_GITHUB_PUSH_ENABLED }} context: .docker/dict tags: | cthulhoo/the-epube-dict:latest cthulhoo/the-epube-dict:${{ env.BUILD_TAG }} provenance: false - name: build app image uses: https://github.com/docker/build-push-action@v4 with: push: ${{ !!secrets.REGISTRY_GITHUB_PUSH_ENABLED }} context: .docker/app build-contexts: app-src=. tags: | cthulhoo/the-epube-fpm-static:latest cthulhoo/the-epube-fpm-static:${{ env.BUILD_TAG }} provenance: false