Update version #9143
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: Update version | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: '30 */4 * * *' | |
jobs: | |
update-version: | |
name: Automatically get latest PHPStan version and commit | |
runs-on: ubuntu-latest | |
steps: | |
- name: "Checkout code" | |
uses: actions/checkout@v3 | |
with: | |
ref: master | |
fetch-depth: '0' | |
- name: "Update Dockerfile and action.yml" | |
id: fetch_version | |
run: | | |
latest=$(curl -s https://packagist.org/packages/phpstan/phpstan.json|jq '[.package.versions[]|select(.version|test("^\\d+\\.\\d+\\.\\d+$"))|.version]|max_by(.|[splits("[.]")]|map(tonumber))') | |
latest=$(echo $latest | tr -d '"') | |
echo "Latest PHPStan version is $latest" | |
echo ::set-output name=latest::$latest | |
sed -i -re "s/ENV VERSION=.*/ENV VERSION=$latest/" Dockerfile | |
cat Dockerfile | |
sed -i -re "s/phpstan-ga:([0-9.]+)?/phpstan-ga:$latest/" action.yml | |
cat action.yml | |
- name: "Commit changes" | |
uses: stefanzweifel/git-auto-commit-action@v5 | |
id: commit | |
with: | |
commit_author: "Oskar Stark <[email protected]>" | |
commit_message: "Enhancement: Upgrade to PHPStan ${{ steps.fetch_version.outputs.latest }}" | |
commit_user_email: "[email protected]" | |
commit_user_name: "Oskar Stark" | |
- name: "Tag version ${{ steps.fetch_version.outputs.latest }}" | |
uses: "anothrNick/[email protected]" | |
if: steps.commit.outputs.changes_detected == 'true' | |
id: tag | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
CUSTOM_TAG: ${{ steps.fetch_version.outputs.latest }} | |
RELEASE_BRANCHES: master | |
- name: "Create release ${{ steps.fetch_version.outputs.latest }}" | |
uses: actions/create-release@v1 | |
if: steps.commit.outputs.changes_detected == 'true' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ steps.tag.outputs.new_tag }} | |
release_name: ${{ steps.tag.outputs.new_tag }} | |
commitish: master | |
body: "Upgrade PHPStan to ${{ steps.tag.outputs.new_tag }}" | |
publish_docker_images: | |
needs: [update-version] | |
runs-on: ubuntu-20.04 | |
if: github.ref == 'refs/heads/master' || github.event_name == 'release' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Docker meta | |
id: meta | |
uses: crazy-max/ghaction-docker-meta@v2 | |
with: | |
images: oskarstark/phpstan-ga | |
tags: | | |
type=raw,value=latest,enable=${{ endsWith(github.ref, 'master') }} | |
type=ref,event=tag | |
flavor: | | |
latest=false | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v1 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v2 | |
with: | |
context: . | |
push: ${{ github.event_name != 'pull_request' }} | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} |