Skip to content

Allow provider to use the external ID when assuming the role in the p… #991

Allow provider to use the external ID when assuming the role in the p…

Allow provider to use the external ID when assuming the role in the p… #991

Workflow file for this run

on: [push, pull_request]
name: Test
jobs:
lint:
# Separate golangci-lint into its own job because it can override go
# env variables and it runs jobs in parallel:
# https://github.com/golangci/golangci-lint-action#how-to-use
name: Runs go linters
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
# we depend on full git history for linters
fetch-depth: 0
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '1.19'
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
with:
# Required: the version of golangci-lint is required and must be
# specified without patch version: we always use the latest patch
# version.
version: v1.51
args: --verbose --timeout=10m
test:
strategy:
matrix:
go-version: [1.18.x]
os: [ubuntu-latest]
es-major-version:
- "6"
- "7-opendistro"
- "7"
- "7-opensearch"
include:
- es-major-version: "6"
version: 6.8.9
# oss-image: "docker.elastic.co/elasticsearch/elasticsearch-oss"
oss-image: "elasticsearch"
XPACK_IMAGE: "docker.elastic.co/elasticsearch/elasticsearch:6.8.9"
ES_OPENDISTRO_IMAGE: "ghcr.io/phillbaker/opendistro-for-elasticsearch:0.10.0"
ES_KIBANA_IMAGE: "docker.elastic.co/kibana/kibana-oss:6.0.0"
- es-major-version: "7-opendistro"
version: 7.10.1
# oss-image: "docker.elastic.co/elasticsearch/elasticsearch-oss"
oss-image: "elasticsearch"
XPACK_IMAGE: "docker.elastic.co/elasticsearch/elasticsearch:7.10.1"
ES_OPENDISTRO_IMAGE: "amazon/opendistro-for-elasticsearch:1.13.3"
ES_KIBANA_IMAGE: "docker.elastic.co/kibana/kibana:7.10.1"
- es-major-version: "7"
version: 7.17.4
# oss-image: "docker.elastic.co/elasticsearch/elasticsearch-oss"
oss-image: "elasticsearch"
XPACK_IMAGE: "docker.elastic.co/elasticsearch/elasticsearch:7.17.4"
# Note: this is still 7.10.x
ES_OPENDISTRO_IMAGE: "amazon/opendistro-for-elasticsearch:1.13.2"
ES_KIBANA_IMAGE: "docker.elastic.co/kibana/kibana:7.17.4"
- es-major-version: "7-opensearch"
version: 1.1.0
oss-image: "opensearchproject/opensearch"
XPACK_IMAGE: "docker.elastic.co/elasticsearch/elasticsearch:7.10.1"
ES_OPENDISTRO_IMAGE: "opensearchproject/opensearch:1.1.0"
ES_KIBANA_IMAGE: "" # opensearchproject/opensearch-dashboards:1.0.0"
OPENSEARCH_PREFIX: "plugins.security"
OSS_ENV_VAR: "plugins.security.disabled=true"
needs: [lint]
name: Test against ES ${{ matrix.es-major-version }} on ${{ matrix.go-version }}/${{ matrix.os }}
runs-on: ${{ matrix.os }}
env:
XPACK_IMAGE: "${{matrix.XPACK_IMAGE}}"
ES_OPENDISTRO_IMAGE: "${{matrix.ES_OPENDISTRO_IMAGE}}"
ES_KIBANA_IMAGE: "${{matrix.ES_KIBANA_IMAGE}}"
OPENSEARCH_PREFIX: "${{matrix.OPENSEARCH_PREFIX}}"
OSS_ENV_VAR: "${{matrix.OSS_ENV_VAR}}"
steps:
- name: Prepare tests
run: |
sudo sysctl -w vm.max_map_count=262144
- name: Setup Go ${{ matrix.go-version }}
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.go-version }}
- name: Checkout code
uses: actions/checkout@v2
with:
# we depend on full git history for linters
fetch-depth: 0
- name: Cache dependencies
uses: actions/cache@v2
with:
path: |
~/go/pkg/mod # Module download cache
~/.cache/go-build # Build cache (Linux)
~/Library/Caches/go-build # Build cache (Mac)
'%LocalAppData%\go-build' # Build cache (Windows)
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: ${{ runner.os }}-go-
- name: Run Docker containers
run: docker-compose up --detach
env:
OSS_IMAGE: "${{ matrix.oss-image }}:${{ matrix.version }}"
ES_COMMAND: "${{matrix.ES_COMMAND}}"
- name: Check Docker containers
run: docker ps -a
# While docker/ES is booting up, run the linters
- name: Get tools
run: |
./script/install-tools
- name: Install managed version of terraform
uses: hashicorp/setup-terraform@v1
with:
terraform_version: 1.0.11
terraform_wrapper: false
- name: Run check scripts
run: |
./script/test-mod-tidy
./script/test-terraform-fmt
- name: Wait for Elasticsearch
# ensure that ES has come up and is available
run: |
./script/wait-for-endpoint --timeout=20 http://localhost:9200
- name: Wait for Kibana
# ensure that Kibana API has come up and is available
run: |
if [ -n "$ES_KIBANA_IMAGE" ]; then
./script/wait-for-endpoint --timeout=120 http://localhost:5601/api/saved_objects/_find?type=visualization
fi
- name: Warm up OpenDistro/Opensearch
# - OpenDistro lazily initializes its indexes, see
# https://github.com/opendistro-for-elasticsearch/alerting/issues/60
run: |
if [ -n "$ES_OPENDISTRO_IMAGE" ]; then
./script/wait-for-endpoint --timeout=120 http://admin:admin@localhost:9220
curl -s -v -X POST -H 'Content-type: application/json' -d '{"name":"_warmup","type":"slack","slack":{"url": "http://www.example.com"}}' http://admin:admin@localhost:9220/_opendistro/_alerting/destinations
fi
- name: Dump docker logs on failure
if: failure()
uses: jwalton/gh-docker-logs@v2
- name: Run the tests
run: |
export ELASTICSEARCH_URL=http://localhost:9200
export TF_LOG=INFO
TF_ACC=1 go test ./... -v -parallel 20 -cover -short
TF_ACC=1 go test ./... -v -cover -run XpackLicense
# check goreleaser config for deprecations
curl -sfL https://git.io/goreleaser | sh -s -- check
release:
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
needs: [test]
runs-on: ubuntu-latest
name: Release
env:
GITHUB_TOKEN_ENCRYPTED:
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup Go
uses: actions/setup-go@v2
with:
go-version: 1.18.x
- name: Import GPG key
id: import_gpg
uses: crazy-max/ghaction-import-gpg@v2
env:
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v2.1.1
with:
version: latest
args: release --rm-dist
env:
GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }}