name: Docker image build on: push: branches: [ "main" ] # Publish semver tags as releases. paths: - '**.php' - 'composer.*' - 'config/**' - '.github/**' - 'Procfile' - 'project.toml' pull_request: branches: [ "main" ] env: PACK_VERSION: "0.27.0" COMPOSER_AUTH: "{\"github-oauth\":{\"github.com\":\"${{ secrets.HVG_DEV_GH_TOKEN }}\"}}" jobs: pack-example: name: Pack Build and Publish! runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - uses: andrioid/setup-pack@v1.0.1 - name: Docker registry login uses: docker/login-action@v1 with: registry: ghcr.io/hvg username: hvg-dev password: ${{ secrets.HVG_DEV_GH_TOKEN }} - name: Set build environment run: | year=$(date +%Y); month=$(date +%m); ref="${GITHUB_REF#refs/*/}"; echo "REF=$ref" >> $GITHUB_ENV; tag="${GITHUB_REF#tags/*/}"; [[ $tag == '' ]] || tag="${year}.${month}.${{ github.run_number }}"; echo "TAG=$tag" >> $GITHUB_ENV; - name: Setup Pack run: | echo "Installing pack ${PACK_VERSION}" mkdir -p "${PWD}/bin" curl \ --show-error \ --silent \ --location \ --fail \ --retry 3 \ --connect-timeout 5 \ --max-time 60 \ "https://github.com/buildpacks/pack/releases/download/v${PACK_VERSION}/pack-v${PACK_VERSION}-linux.tgz" \ | tar -C "${PWD}/bin" -xz pack - name: Build Image with pack run: | bin/pack build "ghcr.io/hvg/blog:$TAG" \ --builder heroku/buildpacks:20 \ --descriptor project.toml \ --workspace /app \ --env COMPOSER_AUTH=$COMPOSER_AUTH; - name: Tag Docker image to ref run: | docker tag ghcr.io/hvg/blog:$TAG ghcr.io/hvg/blog:$REF - name: Docker push run: | docker push ghcr.io/hvg/blog:$TAG docker push ghcr.io/hvg/blog:$REF