Skip to content

Commit 6d3c48f

Browse files
authored
Merge pull request #3 from WyriHaximus/workflows
Add Workflows
2 parents 23c87ad + acee202 commit 6d3c48f

File tree

2 files changed

+103
-0
lines changed

2 files changed

+103
-0
lines changed

.github/workflows/ci.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: Continuous Integration
2+
env:
3+
DOCKER_IMAGE: wyrihaximusgithubactions/supported-php-versions
4+
DOCKER_BUILDKIT: 1
5+
on:
6+
push:
7+
branches:
8+
- master
9+
pull_request:
10+
jobs:
11+
lint:
12+
runs-on: ubuntu-latest
13+
strategy:
14+
fail-fast: false
15+
steps:
16+
- uses: actions/checkout@v2
17+
- name: Lint Dockerfile
18+
uses: docker://hadolint/hadolint:latest-debian
19+
with:
20+
entrypoint: hadolint
21+
args: Dockerfile
22+
build:
23+
needs:
24+
- lint
25+
runs-on: ubuntu-latest
26+
strategy:
27+
fail-fast: false
28+
steps:
29+
- uses: actions/checkout@v2
30+
- run: docker build . -t "${DOCKER_IMAGE}:ci-latest"
31+
- run: docker images
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
name: Create Release & And push Docker image
2+
3+
env:
4+
DOCKER_IMAGE: wyrihaximusgithubactions/supported-php-versions
5+
DOCKER_BUILDKIT: 1
6+
MILESTONE: ${{ github.event.milestone.title }}
7+
on:
8+
milestone:
9+
types:
10+
- closed
11+
jobs:
12+
generate-changelog:
13+
name: Generate Changelog
14+
runs-on: ubuntu-latest
15+
outputs:
16+
changelog: ${{ steps.changelog.outputs.changelog }}
17+
steps:
18+
- name: Generate changelog
19+
uses: WyriHaximus/github-action-jwage-changelog-generator@v1
20+
id: changelog
21+
env:
22+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
23+
with:
24+
milestone: ${{ env.MILESTONE }}
25+
- name: Show changelog
26+
run: echo "${CHANGELOG}"
27+
env:
28+
CHANGELOG: ${{ steps.changelog.outputs.changelog }}
29+
create-release:
30+
name: Create Release
31+
needs:
32+
- generate-changelog
33+
runs-on: ubuntu-latest
34+
steps:
35+
- uses: actions/checkout@v2
36+
env:
37+
CHANGELOG: ${{ needs.generate-changelog.outputs.changelog }}
38+
- run: |
39+
echo -e "${MILESTONE_DESCRIPTION}\r\n\r\n${CHANGELOG}" > release-${{ env.MILESTONE }}-release-message.md
40+
cat release-${{ env.MILESTONE }}-release-message.md
41+
release_message=$(cat release-${{ env.MILESTONE }}-release-message.md)
42+
release_message="${release_message//'%'/'%25'}"
43+
release_message="${release_message//$'\n'/'%0A'}"
44+
release_message="${release_message//$'\r'/'%0D'}"
45+
echo "::set-output name=release_message::$release_message"
46+
id: releasemessage
47+
env:
48+
MILESTONE_DESCRIPTION: ${{ github.event.milestone.description }}
49+
CHANGELOG: ${{ needs.generate-changelog.outputs.changelog }}
50+
- name: Create Release with Changelog
51+
uses: fleskesvor/create-release@feature/support-target-commitish
52+
env:
53+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
54+
with:
55+
tag_name: ${{ env.MILESTONE }}
56+
release_name: ${{ env.MILESTONE }}
57+
body: ${{ steps.releasemessage.outputs.release_message }}
58+
draft: false
59+
prerelease: false
60+
tag:
61+
runs-on: 'ubuntu-latest'
62+
steps:
63+
- uses: actions/checkout@v2
64+
- run: docker build . -t "${DOCKER_IMAGE}:${{ env.MILESTONE }}"
65+
- name: Login to Docker Hub
66+
run: |
67+
echo "${{ secrets.HUB_PASSCODE }}" | \
68+
docker login \
69+
--username "${{ secrets.HUB_USERNAME }}" \
70+
--password-stdin
71+
- name: Push release
72+
run: docker push "${DOCKER_IMAGE}:${{ env.MILESTONE }}"

0 commit comments

Comments
 (0)