mirror of
https://github.com/coturn/coturn.git
synced 2025-10-28 05:21:00 +01:00
Improve CI workflow with edge tags publishing and GitHub releasing
This commit is contained in:
parent
086d5878cc
commit
bb43a47792
50
.github/workflows/docker.yml
vendored
50
.github/workflows/docker.yml
vendored
@ -19,6 +19,7 @@ jobs:
|
|||||||
|| github.ref == 'refs/heads/master') }}
|
|| github.ref == 'refs/heads/master') }}
|
||||||
release: ${{ github.event_name == 'push'
|
release: ${{ github.event_name == 'push'
|
||||||
&& startsWith(github.ref, 'refs/tags/docker/') }}
|
&& startsWith(github.ref, 'refs/tags/docker/') }}
|
||||||
|
|
||||||
- dockerfile: alpine
|
- dockerfile: alpine
|
||||||
cache: ${{ github.ref != 'refs/heads/master'
|
cache: ${{ github.ref != 'refs/heads/master'
|
||||||
&& !startsWith(github.ref, 'refs/tags/docker/') }}
|
&& !startsWith(github.ref, 'refs/tags/docker/') }}
|
||||||
@ -27,12 +28,14 @@ jobs:
|
|||||||
|| github.ref == 'refs/heads/master') }}
|
|| github.ref == 'refs/heads/master') }}
|
||||||
release: ${{ github.event_name == 'push'
|
release: ${{ github.event_name == 'push'
|
||||||
&& startsWith(github.ref, 'refs/tags/docker/') }}
|
&& startsWith(github.ref, 'refs/tags/docker/') }}
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: docker/setup-qemu-action@v1
|
- uses: docker/setup-qemu-action@v1
|
||||||
- uses: docker/setup-buildx-action@v1
|
- uses: docker/setup-buildx-action@v1
|
||||||
|
|
||||||
|
|
||||||
- name: Detect correct Git ref for image build
|
- name: Detect correct Git ref for image build
|
||||||
id: git
|
id: git
|
||||||
uses: actions/github-script@v3
|
uses: actions/github-script@v3
|
||||||
@ -45,6 +48,7 @@ jobs:
|
|||||||
}
|
}
|
||||||
return out;
|
return out;
|
||||||
|
|
||||||
|
|
||||||
- name: Pre-build fresh Docker images cache
|
- name: Pre-build fresh Docker images cache
|
||||||
run: make docker.build.cache no-cache=yes
|
run: make docker.build.cache no-cache=yes
|
||||||
DOCKERFILE=${{ matrix.dockerfile }}
|
DOCKERFILE=${{ matrix.dockerfile }}
|
||||||
@ -75,11 +79,14 @@ jobs:
|
|||||||
sudo systemctl restart docker
|
sudo systemctl restart docker
|
||||||
|
|
||||||
make npm.install
|
make npm.install
|
||||||
make test.docker platforms=@all build=yes DOCKERFILE=${{ matrix.dockerfile }}
|
make test.docker platforms=@all build=yes \
|
||||||
|
DOCKERFILE=${{ matrix.dockerfile }} \
|
||||||
|
ref=${{ fromJSON(steps.git.outputs.result).ref }}
|
||||||
env:
|
env:
|
||||||
COTURN_VERSION: ${{ fromJSON(steps.git.outputs.result).ver }}
|
COTURN_VERSION: ${{ fromJSON(steps.git.outputs.result).ver }}
|
||||||
working-directory: ./docker/coturn
|
working-directory: ./docker/coturn
|
||||||
|
|
||||||
|
|
||||||
- name: Login to GitHub Container Registry
|
- name: Login to GitHub Container Registry
|
||||||
uses: docker/login-action@v1
|
uses: docker/login-action@v1
|
||||||
with:
|
with:
|
||||||
@ -87,6 +94,7 @@ jobs:
|
|||||||
username: ${{ github.repository_owner }}
|
username: ${{ github.repository_owner }}
|
||||||
password: ${{ secrets.GCR_BOT_PAT }}
|
password: ${{ secrets.GCR_BOT_PAT }}
|
||||||
if: ${{ matrix.publish }}
|
if: ${{ matrix.publish }}
|
||||||
|
|
||||||
- name: Login to Quay.io
|
- name: Login to Quay.io
|
||||||
uses: docker/login-action@v1
|
uses: docker/login-action@v1
|
||||||
with:
|
with:
|
||||||
@ -94,6 +102,7 @@ jobs:
|
|||||||
username: ${{ secrets.QUAYIO_ROBOT_USERNAME }}
|
username: ${{ secrets.QUAYIO_ROBOT_USERNAME }}
|
||||||
password: ${{ secrets.QUAYIO_ROBOT_TOKEN }}
|
password: ${{ secrets.QUAYIO_ROBOT_TOKEN }}
|
||||||
if: ${{ matrix.publish }}
|
if: ${{ matrix.publish }}
|
||||||
|
|
||||||
- name: Login to Docker Hub
|
- name: Login to Docker Hub
|
||||||
uses: docker/login-action@v1
|
uses: docker/login-action@v1
|
||||||
with:
|
with:
|
||||||
@ -101,9 +110,20 @@ jobs:
|
|||||||
password: ${{ secrets.DOCKERHUB_BOT_PASS }}
|
password: ${{ secrets.DOCKERHUB_BOT_PASS }}
|
||||||
if: ${{ matrix.publish }}
|
if: ${{ matrix.publish }}
|
||||||
|
|
||||||
- run: make docker.push DOCKERFILE=${{ matrix.dockerfile }}
|
- name: Publish version Docker tags
|
||||||
|
run: make docker.push
|
||||||
|
DOCKERFILE=${{ matrix.dockerfile }}
|
||||||
|
ref=${{ fromJSON(steps.git.outputs.result).ref }}
|
||||||
working-directory: ./docker/coturn
|
working-directory: ./docker/coturn
|
||||||
if: ${{ matrix.publish }}
|
if: ${{ matrix.release }}
|
||||||
|
|
||||||
|
- name: Publish edge Docker tags
|
||||||
|
run: make docker.push tags=edge-${{ matrix.dockerfile }}
|
||||||
|
DOCKERFILE=${{ matrix.dockerfile }}
|
||||||
|
ref=${{ fromJSON(steps.git.outputs.result).ref }}
|
||||||
|
working-directory: ./docker/coturn
|
||||||
|
if: ${{ matrix.publish && !matrix.release }}
|
||||||
|
|
||||||
|
|
||||||
# On GitHub Container Registry README is automatically updated on pushes.
|
# On GitHub Container Registry README is automatically updated on pushes.
|
||||||
- name: Update README on Quay.io
|
- name: Update README on Quay.io
|
||||||
@ -115,6 +135,7 @@ jobs:
|
|||||||
destination_container_repo: quay.io/coturn/coturn
|
destination_container_repo: quay.io/coturn/coturn
|
||||||
readme_file: docker/coturn/README.md
|
readme_file: docker/coturn/README.md
|
||||||
if: ${{ matrix.publish }}
|
if: ${{ matrix.publish }}
|
||||||
|
|
||||||
- name: Update README on Docker Hub
|
- name: Update README on Docker Hub
|
||||||
uses: christian-korneck/update-container-description-action@v1
|
uses: christian-korneck/update-container-description-action@v1
|
||||||
env:
|
env:
|
||||||
@ -126,4 +147,25 @@ jobs:
|
|||||||
readme_file: docker/coturn/README.md
|
readme_file: docker/coturn/README.md
|
||||||
if: ${{ matrix.publish }}
|
if: ${{ matrix.publish }}
|
||||||
|
|
||||||
#TODO: release
|
|
||||||
|
- name: Parse release version from Git tag
|
||||||
|
id: release
|
||||||
|
run: echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/docker/}
|
||||||
|
if: ${{ matrix.release }}
|
||||||
|
|
||||||
|
- name: Parse CHANGELOG link
|
||||||
|
id: changelog
|
||||||
|
run: echo ::set-output name=LINK::https://github.com/${{ github.repository }}/blob/docker/${{ steps.release.outputs.VERSION }}/docker/coturn/CHANGELOG.md#$(sed -n '/^## \[${{ steps.release.outputs.VERSION }}\]/{s/^## \[\(.*\)\][^0-9]*\([0-9].*\)/\1--\2/;s/[^0-9a-z-]*//g;p;}' CHANGELOG.md)
|
||||||
|
working-directory: ./docker/coturn
|
||||||
|
if: ${{ matrix.release }}
|
||||||
|
|
||||||
|
- name: Release on GitHub
|
||||||
|
uses: actions/create-release@v1
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
tag_name: docker/${{ steps.release.outputs.VERSION }}
|
||||||
|
release_name: ${{ steps.release.outputs.VERSION }}
|
||||||
|
body: |
|
||||||
|
[Changelog](${{ steps.changelog.outputs.LINK }})
|
||||||
|
if: ${{ matrix.release }}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user