Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/updates'
Browse files Browse the repository at this point in the history
  • Loading branch information
GUI committed Dec 1, 2021
2 parents 839d98e + b07c263 commit df4e79d
Show file tree
Hide file tree
Showing 345 changed files with 9,099 additions and 7,088 deletions.
48 changes: 0 additions & 48 deletions .circleci/config.yml

This file was deleted.

1 change: 1 addition & 0 deletions .dockerignore
Expand Up @@ -29,5 +29,6 @@ docs/_build
src/api-umbrella/admin-ui/dist
src/api-umbrella/admin-ui/tmp
src/api-umbrella/admin-ui/node_modules
src/api-umbrella/admin-ui/*.log
src/api-umbrella/admin-ui/bower_components
src/api-umbrella/admin-ui/.eslintcache
285 changes: 285 additions & 0 deletions .github/workflows/main.yml
@@ -0,0 +1,285 @@
name: CI

on: [push, pull_request]

env:
REGISTRY: ghcr.io
IMAGE_NAME: nrel/api-umbrella
DOCKER_BUILDKIT: 1
TESTS_GLOB: "test/**/test_*.rb"
ELASTICSEARCH_TESTS_GLOB: "test/admin_ui/**/test_stats_*.rb test/admin_ui/**/test_stats_*.rb test/apis/admin/stats/**/test_*.rb test/apis/v0/test_analytics.rb test/apis/v1/analytics/**/test_*.rb test/proxy/logging/**/test_*.rb"

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1.5.1
with:
driver-opts: network=host

- name: Log in to the Container registry
uses: docker/login-action@v1.10.0
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v3.5.0
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
flavor: |
prefix=dev-env-
- name: Extract metadata (tags, labels) for Docker
id: build_cache_meta
uses: docker/metadata-action@v3.5.0
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
flavor: |
prefix=build-cache-
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2.7.0
with:
target: test
pull: true
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.build_cache_meta.outputs.version }}
cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.build_cache_meta.outputs.version }},mode=max

lint:
needs: [build]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v3.5.0
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
flavor: |
prefix=dev-env-
- name: Pull
run: docker pull "$DOCKER_IMAGE_CACHE_FROM"
env:
DOCKER_IMAGE_CACHE_FROM: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }}

- name: Lint
run: docker run --rm --volume "$(pwd)/.git:/app/.git" "$DOCKER_IMAGE_CACHE_FROM" make lint
env:
DOCKER_IMAGE_CACHE_FROM: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }}

test:
needs: [build]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ci_node_total: [6]
ci_node_index: [0, 1, 2, 3, 4, 5]
steps:
- uses: actions/checkout@v2

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v3.5.0
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
flavor: |
prefix=dev-env-
- name: Pull
run: docker pull "$DOCKER_IMAGE_CACHE_FROM"
env:
DOCKER_IMAGE_CACHE_FROM: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }}

- name: Test
run: |
curl -sL "https://github.com/leonid-shevtsov/split_tests/releases/download/${SPLIT_TEST_VERSION}/split_tests.linux.gz" | gzip -d > /usr/local/bin/split_tests
chmod +x /usr/local/bin/split_tests
tests=$(split_tests --glob "${{ env.TESTS_GLOB }}" --split-total=${CI_NODE_TOTAL} --split-index=${CI_NODE_INDEX})
docker run --rm \
-v "$(pwd)/test/tmp/artifacts:/app/test/tmp/artifacts" \
-e TESTOPTS="--ci-dir=./test/tmp/artifacts/reports" \
-e TESTS="${tests}" \
-e MAXMIND_LICENSE_KEY="${MAXMIND_LICENSE_KEY}" \
"$DOCKER_IMAGE_CACHE_FROM" \
make test
env:
DOCKER_IMAGE_CACHE_FROM: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }}
SPLIT_TEST_VERSION: v0.3.0
CI_NODE_TOTAL: ${{ matrix.ci_node_total }}
CI_NODE_INDEX: ${{ matrix.ci_node_index }}
MAXMIND_LICENSE_KEY: ${{ secrets.MAXMIND_LICENSE_KEY }}

- name: Artifact permissions
if: ${{ always() }}
run: sudo chmod -R 777 test/tmp/artifacts

- name: Archive artifacts
uses: actions/upload-artifact@v2
if: ${{ always() }}
with:
name: test-artifacts-matrix-${{ matrix.ci_node_index }}
path: |
test/tmp/artifacts/**/*
!test/tmp/artifacts/**/log/*/lock
test_elasticsearch_v6:
needs: [build]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v3.5.0
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
flavor: |
prefix=dev-env-
- name: Pull
run: docker pull "$DOCKER_IMAGE_CACHE_FROM"
env:
DOCKER_IMAGE_CACHE_FROM: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }}

- name: Test
run: |
shopt -s globstar
tests=(${{ env.ELASTICSEARCH_TESTS_GLOB }})
docker run --rm \
-v "$(pwd)/test/tmp/artifacts:/app/test/tmp/artifacts" \
-e ELASTICSEARCH_TEST_API_VERSION=6 \
-e ELASTICSEARCH_TEST_TEMPLATE_VERSION=2 \
-e TESTOPTS="--ci-dir=./test/tmp/artifacts/reports" \
-e TESTS="${tests[*]}" \
-e MAXMIND_LICENSE_KEY="${MAXMIND_LICENSE_KEY}" \
"$DOCKER_IMAGE_CACHE_FROM" \
make test
env:
DOCKER_IMAGE_CACHE_FROM: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }}
MAXMIND_LICENSE_KEY: ${{ secrets.MAXMIND_LICENSE_KEY }}

- name: Artifact permissions
if: ${{ always() }}
run: sudo chmod -R 777 test/tmp/artifacts

- name: Archive artifacts
uses: actions/upload-artifact@v2
if: ${{ always() }}
with:
name: test-artifacts-elasticsearch-v6
path: |
test/tmp/artifacts/**/*
!test/tmp/artifacts/**/log/*/lock
test_elasticsearch_v7:
needs: [build]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v3.5.0
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
flavor: |
prefix=dev-env-
- name: Pull
run: docker pull "$DOCKER_IMAGE_CACHE_FROM"
env:
DOCKER_IMAGE_CACHE_FROM: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }}

- name: Test
run: |
shopt -s globstar
tests=(${{ env.ELASTICSEARCH_TESTS_GLOB }})
docker run --rm \
-v "$(pwd)/test/tmp/artifacts:/app/test/tmp/artifacts" \
-e ELASTICSEARCH_TEST_API_VERSION=7 \
-e ELASTICSEARCH_TEST_TEMPLATE_VERSION=2 \
-e TESTOPTS="--ci-dir=./test/tmp/artifacts/reports" \
-e TESTS="${tests[*]}" \
-e MAXMIND_LICENSE_KEY="${MAXMIND_LICENSE_KEY}" \
"$DOCKER_IMAGE_CACHE_FROM" \
make test
env:
DOCKER_IMAGE_CACHE_FROM: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }}
MAXMIND_LICENSE_KEY: ${{ secrets.MAXMIND_LICENSE_KEY }}

- name: Artifact permissions
if: ${{ always() }}
run: sudo chmod -R 777 test/tmp/artifacts

- name: Archive artifacts
uses: actions/upload-artifact@v2
if: ${{ always() }}
with:
name: test-artifacts-elasticsearch-v7
path: |
test/tmp/artifacts/**/*
!test/tmp/artifacts/**/log/*/lock
test_elasticsearch_v7_daily:
needs: [build]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v3.5.0
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
flavor: |
prefix=dev-env-
- name: Pull
run: docker pull "$DOCKER_IMAGE_CACHE_FROM"
env:
DOCKER_IMAGE_CACHE_FROM: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }}

- name: Test
run: |
shopt -s globstar
tests=(${{ env.ELASTICSEARCH_TESTS_GLOB }})
docker run --rm \
-v "$(pwd)/test/tmp/artifacts:/app/test/tmp/artifacts" \
-e ELASTICSEARCH_TEST_API_VERSION=7 \
-e ELASTICSEARCH_TEST_TEMPLATE_VERSION=2 \
-e ELASTICSEARCH_TEST_INDEX_PARTITION=daily \
-e TESTOPTS="--ci-dir=./test/tmp/artifacts/reports" \
-e TESTS="${tests[*]}" \
-e MAXMIND_LICENSE_KEY="${MAXMIND_LICENSE_KEY}" \
"$DOCKER_IMAGE_CACHE_FROM" \
make test
env:
DOCKER_IMAGE_CACHE_FROM: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }}
MAXMIND_LICENSE_KEY: ${{ secrets.MAXMIND_LICENSE_KEY }}

- name: Artifact permissions
if: ${{ always() }}
run: sudo chmod -R 777 test/tmp/artifacts

- name: Archive artifacts
uses: actions/upload-artifact@v2
if: ${{ always() }}
with:
name: test-artifacts-elasticsearch-v7-daily
path: |
test/tmp/artifacts/**/*
!test/tmp/artifacts/**/log/*/lock
9 changes: 5 additions & 4 deletions .gitignore
Expand Up @@ -17,9 +17,6 @@
# Ignore bundler config
/.bundle

# Ignore Circle CI items, so the GitHub pages publish task can work.
/.ruby-version

# Build task checksums
/.task

Expand All @@ -32,7 +29,11 @@
/deploy/tmp
/log/*
/test/reports
/test/tmp
/test/tmp/*
!/test/tmp/.keep
!/test/tmp/artifacts
/test/tmp/artifacts/*
!/test/tmp/artifacts/.keep
/ci_cache
/vendor
/website/build
Expand Down

0 comments on commit df4e79d

Please sign in to comment.