64 lines
2.3 KiB
YAML
64 lines
2.3 KiB
YAML
#@ load("@ytt:data", "data")
|
|
#@ load("util.star", "to_build_args")
|
|
#@ load("helpers.star", "ci_image", "ci_image_tag", "skip_ci_condition")
|
|
|
|
#@ def tests_job(dep, erlang_version=None):
|
|
name: #@ dep.name
|
|
needs: [prepare]
|
|
runs-on: ubuntu-18.04
|
|
if: #@ skip_ci_condition()
|
|
#@yaml/text-templated-strings
|
|
steps:
|
|
- name: RECORD STEP START
|
|
id: buildevents
|
|
run: |
|
|
echo "::set-output name=step_start::$(date +%s)"
|
|
- uses: actions/cache@v2
|
|
with:
|
|
key: #@ ci_image_tag(erlang_version)
|
|
path: ci.tar
|
|
- name: LOAD CI DOCKER IMAGE FROM CACHE
|
|
run: |
|
|
docker load --input ci.tar
|
|
#@ if getattr(dep, 'use_terraform', False):
|
|
- name: PREPARE TERRAFORM SECRETS
|
|
run: |
|
|
mkdir terraform && chmod 777 terraform
|
|
echo "${{ secrets.TERRAFORM_SSH_KEY }}" > terraform/id_rsa_terraform
|
|
echo "${{ secrets.TERRAFORM_SSH_KEY_PUB }}" > terraform/id_rsa_terraform.pub
|
|
#@ end
|
|
- name: RUN TESTS
|
|
run: |
|
|
mkdir ct-logs && chmod 777 ct-logs
|
|
docker run \
|
|
--env project=(@= dep.name @) \
|
|
--env GITHUB_RUN_ID=${{ github.run_id }} \
|
|
--env BUILDEVENT_APIKEY=${{ secrets.HONEYCOMB_API_KEY }} \
|
|
--env STEP_START=${{ steps.buildevents.outputs.step_start }} \
|
|
(@= additional_docker_args(dep, erlang_version=erlang_version) @) \
|
|
--volume ${PWD}/ct-logs:/workspace/ct-logs \
|
|
--oom-kill-disable \
|
|
(@= ci_image(erlang_version) @) \
|
|
ci/scripts/tests.sh
|
|
- name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT
|
|
#! https://github.com/marketplace/actions/upload-artifact
|
|
uses: actions/upload-artifact@v2-preview
|
|
if: failure()
|
|
with:
|
|
name: (@= dep.name @)-ct-logs
|
|
path: "ct-logs/*-ct-logs-*.tar.xz"
|
|
#@ end
|
|
|
|
#@ def additional_docker_args(dep, erlang_version=None):
|
|
#@ if getattr(dep, 'use_terraform', False):
|
|
#@ args = []
|
|
#@ args.append("--env ERLANG_VERSION={}".format(erlang_version))
|
|
#@ args.append("--env AWS_ACCESS_KEY_ID=${{ secrets.CONCOURSE_AWS_ACCESS_KEY_ID }}")
|
|
#@ args.append("--env AWS_SECRET_ACCESS_KEY=${{ secrets.CONCOURSE_AWS_SECRET_ACCESS_KEY }}")
|
|
#@ args.append("--env SSH_KEY=/workspace/terraform/id_rsa_terraform")
|
|
#@ args.append("--volume ${PWD}/terraform:/workspace/terraform")
|
|
#@ return " \\\n ".join(args)
|
|
#@ else:
|
|
#@ return ""
|
|
#@ end
|
|
#@ end |