mirror of https://github.com/statping/statping
add docker build via custom action, remove release step for now
parent
1372fef964
commit
6d753ccc86
|
@ -466,6 +466,18 @@ jobs:
|
||||||
timeoutRequest: 30000
|
timeoutRequest: 30000
|
||||||
delayRequest: 600
|
delayRequest: 600
|
||||||
|
|
||||||
|
docker-build:
|
||||||
|
needs: [ data ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: jemand771/docker-build-action@main
|
||||||
|
with:
|
||||||
|
GITHUB_TOKEN: ${{ github.token }}
|
||||||
|
push_strategy: artifact
|
||||||
|
platforms: linux/amd64
|
||||||
|
|
||||||
# TODO everything from here on is stable/unstable release only
|
# TODO everything from here on is stable/unstable release only
|
||||||
|
|
||||||
# all other release jobs should be based on this
|
# all other release jobs should be based on this
|
||||||
|
@ -473,88 +485,12 @@ jobs:
|
||||||
# only run release jobs on push to stable/unstable.
|
# only run release jobs on push to stable/unstable.
|
||||||
# yes, we need to explicitly compare to 'true' here since it's a string
|
# yes, we need to explicitly compare to 'true' here since it's a string
|
||||||
if: ${{ success() && needs.data.outputs.is_release == 'true' }}
|
if: ${{ success() && needs.data.outputs.is_release == 'true' }}
|
||||||
needs: [ data, build, test-postman-sqlite, test-postman-mysql, test-postman-postgres ]
|
needs: [ data, build, test-postman-sqlite, test-postman-mysql, test-postman-postgres, docker-build ]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: dummy operation
|
- name: dummy operation
|
||||||
run: |
|
run: |
|
||||||
:
|
:
|
||||||
|
|
||||||
github-release:
|
# TODO push docker image(s) and release artifacts
|
||||||
runs-on: ubuntu-latest
|
# TODO bring back dockerhub image
|
||||||
needs: [ data, release-precondition-check ]
|
|
||||||
steps:
|
|
||||||
# TODO read version somewhere *once* and use output globally
|
|
||||||
- name: Download job artifacts
|
|
||||||
uses: actions/download-artifact@v2
|
|
||||||
with:
|
|
||||||
path: downloads
|
|
||||||
- name: Accumulate files
|
|
||||||
run: |
|
|
||||||
mkdir files
|
|
||||||
find downloads -type f -exec cp {} files \;
|
|
||||||
- name: Upload Releases
|
|
||||||
id: upload-assets
|
|
||||||
uses: softprops/action-gh-release@v1
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
VERSION: ${{ needs.data.outputs.version }}
|
|
||||||
with:
|
|
||||||
# add "dev-" prefix for unstable releases
|
|
||||||
tag_name: ${{ needs.data.outputs.is_unstable && 'dev-' || '' }}v${{ needs.data.outputs.version }}
|
|
||||||
draft: true
|
|
||||||
prerelease: true
|
|
||||||
files: files/statping-*
|
|
||||||
|
|
||||||
docker-release:
|
|
||||||
needs: [ data, release-precondition-check ]
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout Statping Repo
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v1
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v1
|
|
||||||
id: buildx
|
|
||||||
with:
|
|
||||||
install: true
|
|
||||||
|
|
||||||
# TODO the cache keys for stable/unstable were different here, but that doesn't really matter
|
|
||||||
# TODO use docker metadata action instead of this (don't refer to makefile for docker commands at all)
|
|
||||||
# TODO consider creating builds for dev (not really needed?), if so: not multiarch
|
|
||||||
# TODO build docker image before releasing (in parallel to build), use same cache here and there.
|
|
||||||
# --> don't push from build step so everything can be released (somewhat) simultaneously
|
|
||||||
- name: Cache Docker layers
|
|
||||||
uses: actions/cache@v2
|
|
||||||
id: buildx-docker-master
|
|
||||||
with:
|
|
||||||
path: /tmp/.buildx-cache
|
|
||||||
key: buildx-docker-master
|
|
||||||
restore-keys: |
|
|
||||||
buildx-docker-master
|
|
||||||
|
|
||||||
# TODO duplicate login why?
|
|
||||||
- name: Docker Login
|
|
||||||
env:
|
|
||||||
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
|
|
||||||
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
|
|
||||||
run: echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin
|
|
||||||
|
|
||||||
# TODO get rid of the base image
|
|
||||||
- name: Docker Build :base
|
|
||||||
run: make buildx-base
|
|
||||||
|
|
||||||
- name: Docker Login
|
|
||||||
env:
|
|
||||||
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
|
|
||||||
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
|
|
||||||
run: echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin
|
|
||||||
|
|
||||||
# TODO this should be :latest in stable
|
|
||||||
# TODO do we even want a "static" :dev tag?
|
|
||||||
- name: Docker Build :dev
|
|
||||||
run: make buildx-dev
|
|
||||||
|
|
Loading…
Reference in New Issue