* Create ghcr.yml Create and publish a Docker image to GitHub Container Registry * Update installation.rst Add reference to GitHub Container registry * Update running-with-docker.rst Add ghcr references * Make ghcr conditional on main.yml Updated main.yml run conditions & add on-success condition to ghcr.yml * Miss aligned * change workflow name GHCR * Update build to Build Names didn't match GHCR condition * Remove cog symbol from Build name * Add paths-ignore **.md * Added build & push to DockerHub * Add authorship & update header * Tidy yml, add on-success condition * Add on failure condition * Remove GHC Tests and Conditional Push * DockerHub Test - koalageo/pygeoapi * DockerHub - Revert to geopython/pygeoapi * Use SECRET for DockerHub repo * Combined Build & Push * Update tag function * Fix tags for latest * Lastest tag only on `master` * Use tag on push tag event * Add latest tag on default branch * Add unit tests step * Add separate build & test steps * Typo in docs * Move flake8 to before tests - catch errors early * Add further tags Co-authored-by: Benjamin Webb <40066515+webb-ben@users.noreply.github.com> Co-authored-by: Benjamin Webb <40066515+webb-ben@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
# This workflow uses actions that are not certified by GitHub.
|
||||
# They are provided by a third-party and are governed by
|
||||
# separate terms of service, privacy policy, and support
|
||||
# documentation.
|
||||
|
||||
name: Publish Docker image
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: ["Build"]
|
||||
types: [completed]
|
||||
|
||||
env:
|
||||
TEST_TAG: ${{ secrets.DOCKER_REPOSITORY }}:test
|
||||
|
||||
jobs:
|
||||
on-success:
|
||||
name: Build, Test and Push Docker Image to DockerHub
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event.workflow_run.conclusion == 'success' }}
|
||||
permissions:
|
||||
packages: write
|
||||
contents: read
|
||||
steps:
|
||||
- name: Check out the 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
|
||||
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Log in to the Container registry
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Build and export to Docker
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: .
|
||||
load: true
|
||||
tags: ${{ env.TEST_TAG }}
|
||||
|
||||
- name: pygeoapi Unit Tests with Docker Image ⚙️
|
||||
run: |
|
||||
docker run --entrypoint "/entrypoint.sh" --rm ${{ env.TEST_TAG }}
|
||||
|
||||
- name: Extract metadata (tags, labels) for Docker
|
||||
id: meta
|
||||
uses: docker/metadata-action@v3
|
||||
with:
|
||||
images: |
|
||||
${{ secrets.DOCKER_REPOSITORY }}
|
||||
ghcr.io/${{ github.repository }}
|
||||
tags: |
|
||||
type=semver,pattern={{version}}
|
||||
type=raw,value=latest,enable=${{ endsWith(github.ref, github.event.repository.default_branch) }}
|
||||
|
||||
- name: Build and push Docker images
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
cache-from: type=gha
|
||||
cache-to: type=gha,mode=max
|
||||
platforms: linux/arm64, linux/amd64
|
||||
|
||||
on-failure:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
|
||||
steps:
|
||||
- name: Print Test Fail
|
||||
run: echo Tests Failed
|
||||
@@ -1,6 +1,19 @@
|
||||
name: build ⚙️
|
||||
name: Build
|
||||
|
||||
on: [ push, pull_request ]
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
release:
|
||||
types:
|
||||
- released
|
||||
|
||||
jobs:
|
||||
main:
|
||||
@@ -55,6 +68,8 @@ jobs:
|
||||
pip3 install -r requirements-provider.txt
|
||||
python3 setup.py install
|
||||
#pip3 install --upgrade rasterio==1.1.8
|
||||
- name: run flake8 ⚙️
|
||||
run: find . -type f -name "*.py" | xargs flake8
|
||||
- name: setup test data ⚙️
|
||||
run: |
|
||||
python3 tests/load_es_data.py tests/data/ne_110m_populated_places_simple.geojson geonameid
|
||||
@@ -91,8 +106,6 @@ jobs:
|
||||
pytest tests/test_util.py
|
||||
pytest tests/test_xarray_netcdf_provider.py
|
||||
pytest tests/test_xarray_zarr_provider.py
|
||||
- name: run flake8 ⚙️
|
||||
run: find . -type f -name "*.py" | xargs flake8
|
||||
- name: build docs 🏗️
|
||||
run: cd docs && make html
|
||||
|
||||
|
||||
Reference in New Issue
Block a user