aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2022-11-28 00:16:55 +0100
committerEgor Tensin <Egor.Tensin@gmail.com>2022-11-28 00:16:55 +0100
commit86c8bb565cb8ee764427e1d648f6098f41ae4ea9 (patch)
tree135ac38bda04fb0a4628d11263697326aadd2434
parentadd a minimal working version (diff)
downloadwg-api-web-86c8bb565cb8ee764427e1d648f6098f41ae4ea9.tar.gz
wg-api-web-86c8bb565cb8ee764427e1d648f6098f41ae4ea9.zip
add GitHub Actions workflow
-rw-r--r--.github/workflows/ci.yml53
1 files changed, 53 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..f6aac99
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,53 @@
+name: CI
+
+on:
+ push:
+ pull_request:
+ workflow_dispatch:
+
+jobs:
+ publish_docker:
+ runs-on: ubuntu-latest
+ name: 'Publish / Docker Hub'
+ if: github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/'))
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ # https://github.com/docker/metadata-action#semver
+ - id: meta
+ name: Docker Hub metadata
+ uses: docker/metadata-action@v4
+ with:
+ images: egortensin/wg-api-web
+ flavor: |
+ latest=auto
+ tags: |
+ type=ref,event=branch
+ type=semver,pattern={{version}}
+ type=semver,pattern={{major}}.{{minor}}
+ type=semver,pattern={{major}}
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v2
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v2
+ - name: Login to Docker Hub
+ uses: docker/login-action@v2
+ with:
+ username: egortensin
+ password: '${{ secrets.DOCKERHUB_TOKEN }}'
+ - id: platforms
+ name: Which platforms?
+ # Building for ARM for every commit in master is too time-consuming.
+ run: |
+ if [ '${{ github.ref }}' = 'refs/heads/master' ]; then
+ echo '::set-output name=platforms::linux/amd64'
+ else
+ echo '::set-output name=platforms::linux/amd64,linux/armhf'
+ fi
+ - name: Build and publish
+ uses: docker/build-push-action@v3
+ with:
+ labels: '${{ steps.meta.outputs.labels }}'
+ platforms: '${{ steps.platforms.outputs.platforms }}'
+ push: true
+ tags: '${{ steps.meta.outputs.tags }}'