diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ba01ba9..67962d3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,112 +1,22 @@ -### Application Level Image CI -### Dave Conroy - -name: 'build' +### Application Level Image CI - Bookstack +### Dave Conroy +name: 'Multi PHP Version Build' on: push: paths: - '**' - '!README.md' jobs: - docker: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Prepare - id: prep - run: | - DOCKER_IMAGE=${GITHUB_REPOSITORY/docker-/} - set -x - if [[ $GITHUB_REF == refs/heads/* ]]; then - if [[ $GITHUB_REF == refs/heads/*/* ]] ; then - BRANCH="${DOCKER_IMAGE}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" - else - BRANCH=${GITHUB_REF#refs/heads/} - fi - - case ${BRANCH} in - "main" | "master" ) - BRANCHTAG="${DOCKER_IMAGE}:latest" - ;; - "develop" ) - BRANCHTAG="${DOCKER_IMAGE}:develop" - ;; - * ) - if [ -n "${{ secrets.LATEST }}" ] ; then - if [ "${BRANCHTAG}" = "${{ secrets.LATEST }}" ]; then - BRANCHTAG="${DOCKER_IMAGE}:${BRANCH},${DOCKER_IMAGE}:${BRANCH}-latest,${DOCKER_IMAGE}:latest" - else - BRANCHTAG="${DOCKER_IMAGE}:${BRANCH},${DOCKER_IMAGE}:${BRANCH}-latest" - fi - else - BRANCHTAG="${DOCKER_IMAGE}:${BRANCH},${DOCKER_IMAGE}:${BRANCH}-latest" - fi - ;; - esac - fi - - - if [[ $GITHUB_REF == refs/tags/* ]]; then - GITTAG="${DOCKER_IMAGE}:$(echo $GITHUB_REF | sed 's|refs/tags/||g')" - fi - - if [ -n "${BRANCHTAG}" ] && [ -n "${GITTAG}" ]; then - TAGS=${BRANCHTAG},${GITTAG} - else - TAGS="${BRANCHTAG}${GITTAG}" - fi - - echo ::set-output name=tags::${TAGS} - echo ::set-output name=docker_image::${DOCKER_IMAGE} - - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - with: - platforms: all - - - name: Set up Docker Buildx - id: buildx - uses: docker/setup-buildx-action@v2 - - - name: Login to DockerHub - if: github.event_name != 'pull_request' - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Label - id: Label - run: | - if [ -f "Dockerfile" ] ; then - sed -i "/FROM .*/a LABEL tiredofit.image.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" Dockerfile - sed -i "/FROM .*/a LABEL tiredofit.image.git_commit=\"${GITHUB_SHA}\"" Dockerfile - sed -i "/FROM .*/a LABEL tiredofit.image.git_committed_by=\"${GITHUB_ACTOR}\"" Dockerfile - sed -i "/FROM .*/a LABEL tiredofit.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" Dockerfile - if [ -f "CHANGELOG.md" ] ; then - sed -i "/FROM .*/a LABEL tiredofit.self-service-password.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" Dockerfile - mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md - fi - - - if [[ $GITHUB_REF == refs/tags/* ]]; then - sed -i "/FROM .*/a LABEL tiredofit.image.git_tag=\"${GITHUB_REF#refs/tags/v}\"" Dockerfile - fi - - if [[ $GITHUB_REF == refs/heads/* ]]; then - sed -i "/FROM .*/a LABEL tiredofit.image.git_branch=\"${GITHUB_REF#refs/heads/}\"" Dockerfile - fi - fi - - - name: Build - uses: docker/build-push-action@v3 - with: - builder: ${{ steps.buildx.outputs.name }} - context: . - file: ./Dockerfile - platforms: linux/amd64,linux/arm/v7,linux/arm64 - push: true - tags: ${{ steps.prep.outputs.tags }} + php74: + uses: tiredofit/github_actions/.github/workflows/php74_alpine_amd64_armv7_arm64.yml@main + secrets: inherit +# php80: +# uses: tiredofit/github_actions/.github/workflows/php80_alpine_amd64_armv7_arm64.yml@main +# secrets: inherit +# php81: +# uses: tiredofit/github_actions/.github/workflows/php81_alpine_amd64_armv7_arm64.yml@main +# secrets: inherit +# php82: +# uses: tiredofit/github_actions/.github/workflows/php82_alpine_amd64.yml@main +# secrets: inherit diff --git a/.github/workflows/manual.yml b/.github/workflows/manual.yml index 37255ca..1627df7 100644 --- a/.github/workflows/manual.yml +++ b/.github/workflows/manual.yml @@ -9,104 +9,15 @@ on: description: 'Manual Build' required: false jobs: - docker: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Prepare - id: prep - run: | - DOCKER_IMAGE=${GITHUB_REPOSITORY/docker-/} - set -x - if [[ $GITHUB_REF == refs/heads/* ]]; then - if [[ $GITHUB_REF == refs/heads/*/* ]] ; then - BRANCH="${DOCKER_IMAGE}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")" - else - BRANCH=${GITHUB_REF#refs/heads/} - fi - - case ${BRANCH} in - "main" | "master" ) - BRANCHTAG="${DOCKER_IMAGE}:latest" - ;; - "develop" ) - BRANCHTAG="${DOCKER_IMAGE}:develop" - ;; - * ) - if [ -n "${{ secrets.LATEST }}" ] ; then - if [ "${BRANCHTAG}" = "${{ secrets.LATEST }}" ]; then - BRANCHTAG="${DOCKER_IMAGE}:${BRANCH},${DOCKER_IMAGE}:${BRANCH}-latest,${DOCKER_IMAGE}:latest" - else - BRANCHTAG="${DOCKER_IMAGE}:${BRANCH},${DOCKER_IMAGE}:${BRANCH}-latest" - fi - else - BRANCHTAG="${DOCKER_IMAGE}:${BRANCH},${DOCKER_IMAGE}:${BRANCH}-latest" - fi - ;; - esac - fi - - - if [[ $GITHUB_REF == refs/tags/* ]]; then - GITTAG="${DOCKER_IMAGE}:$(echo $GITHUB_REF | sed 's|refs/tags/||g')" - fi - - if [ -n "${BRANCHTAG}" ] && [ -n "${GITTAG}" ]; then - TAGS=${BRANCHTAG},${GITTAG} - else - TAGS="${BRANCHTAG}${GITTAG}" - fi - - echo ::set-output name=tags::${TAGS} - echo ::set-output name=docker_image::${DOCKER_IMAGE} - - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - with: - platforms: all - - - name: Set up Docker Buildx - id: buildx - uses: docker/setup-buildx-action@v2 - - - name: Login to DockerHub - if: github.event_name != 'pull_request' - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Label - id: Label - run: | - if [ -f "Dockerfile" ] ; then - sed -i "/FROM .*/a LABEL tiredofit.image.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" Dockerfile - sed -i "/FROM .*/a LABEL tiredofit.image.git_commit=\"${GITHUB_SHA}\"" Dockerfile - sed -i "/FROM .*/a LABEL tiredofit.image.git_committed_by=\"${GITHUB_ACTOR}\"" Dockerfile - sed -i "/FROM .*/a LABEL tiredofit.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" Dockerfile - if [ -f "CHANGELOG.md" ] ; then - sed -i "/FROM .*/a LABEL tiredofit.self-service-password.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" Dockerfile - mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md - fi - - - if [[ $GITHUB_REF == refs/tags/* ]]; then - sed -i "/FROM .*/a LABEL tiredofit.image.git_tag=\"${GITHUB_REF#refs/tags/v}\"" Dockerfile - fi - - if [[ $GITHUB_REF == refs/heads/* ]]; then - sed -i "/FROM .*/a LABEL tiredofit.image.git_branch=\"${GITHUB_REF#refs/heads/}\"" Dockerfile - fi - fi - - - name: Build - uses: docker/build-push-action@v3 - with: - builder: ${{ steps.buildx.outputs.name }} - context: . - file: ./Dockerfile - platforms: linux/amd64,linux/arm/v7,linux/arm64 - push: true - tags: ${{ steps.prep.outputs.tags }} + php74: + uses: tiredofit/github_actions/.github/workflows/php74_alpine_amd64_armv7_arm64.yml@main + secrets: inherit +# php80: +# uses: tiredofit/github_actions/.github/workflows/php80_alpine_amd64_armv7_arm64.yml@main +# secrets: inherit +# php81: +# uses: tiredofit/github_actions/.github/workflows/php81_alpine_amd64_armv7_arm64.yml@main +# secrets: inherit +# php82: +# uses: tiredofit/github_actions/.github/workflows/php82_alpine_amd64.yml@main +# secrets: inherit diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a5df8a..1d5630a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 5.3.3 2023-08-02 + + ### Added + - Modernize Docker image and workflows + + ## 5.3.2 2023-08-02 ### Added diff --git a/Dockerfile b/Dockerfile index b986de6..39f8f82 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,8 @@ -FROM docker.io/tiredofit/nginx-php-fpm:7.4 -LABEL maintainer="Dave Conroy (dave at tiredofit dot ca)" +ARG PHP_VERSION=7.4 +ARG DISTRO="alpine" + +FROM docker.io/tiredofit/nginx-php-fpm:${PHP_VERSION}-${DISTRO} +LABEL maintainer="Dave Conroy (github.com/tiredofit)" ENV SSP_VERSION=1.3 \ PHP_ENABLE_LDAP=TRUE \ @@ -9,13 +12,12 @@ ENV SSP_VERSION=1.3 \ IMAGE_NAME="tiredofit/self-service-password" \ IMAGE_REPO_URL="https://github.com/tiredofit/docker-self-service-password/" -### Dependency Installation - RUN set -x && \ - apk update && \ - apk upgrade && \ + RUN source /assets/functions/00-container && \ + set -x && \ + package update && \ + package upgrade && \ mkdir -p /assets/install && \ curl -sSL -o /assets/install/v${SSP_VERSION}.tar.gz https://github.com/ltb-project/self-service-password/archive/v${SSP_VERSION}.tar.gz && \ - rm -rf /var/cache/apk/* + package cleanup -### Files Addition ADD install /