Skip to content

Create a QA candidate release #200

Create a QA candidate release

Create a QA candidate release #200

# Copyright (C) 2021-2023 Technology Matters
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see https://www.gnu.org/licenses/.
# Workflow to create a new pre-release with qa suffix
name: Create a QA candidate release
# Controls when the action will run.
on:
workflow_dispatch:
inputs:
tag-prefix:
description: Release tag prefix (generally the version, e.g. v1.2.3).
required: true
title:
description: Release title - The title that will be given to this pre-release.
required: true
jobs:
build-and-deploy:
uses: ./.github/workflows/deploy-multiple-accounts.yml
secrets: inherit
with:
helplines: '["E2E"]'
environments: '["DEV"]'
send_final_slack_message: false
send_slack_message_per_deploy: false
run-e2e-tests:
needs: build-and-deploy
runs-on: ubuntu-latest
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
# Clone flex-plugins repo
- name: Clone flex-plugins repo
run: git clone https://github.com/techmatters/flex-plugins
shell: bash
- name: Install Flex Plugin
uses: ./flex-plugins/.github/actions/install-flex-plugin
with:
path: ./flex-plugins
# Build Playwright
- name: Install e2e-tests dependencies
run: npm ci
working-directory: ./flex-plugins/e2e-tests
- name: Setup dependencies for playwright/browsers
uses: microsoft/playwright-github-action@v1
- name: Install Playwright CLI
run: npx playwright install
working-directory: ./flex-plugins/e2e-tests
# Run E2E tests against actual E2E Flex instance
- name: Run Playwright tests
run: npm run test:development:e2e
working-directory: ./flex-plugins/e2e-tests
# Upload artifacts
# TODO: this is not working and cant tell why :(
- uses: actions/upload-artifact@v4
with:
name: test-artifacts
path: flex-plugins/e2e-tests/test-results
generate-pre-release:
needs: run-e2e-tests
runs-on: ubuntu-latest
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- name: Create pre release
uses: techmatters/flex-plugins/.github/actions/generate-pre-release@master
with:
tag-prefix: ${{ inputs.tag-prefix }}
tag-suffix: 'qa'
title: ${{ inputs.title }}
repository: ${{ github.repository }}
repo_token: ${{ secrets.GITHUB_TOKEN }}
id: create_pre_release
# Send Slack notifying success
- name: Slack aselo-deploys channel
uses: techmatters/flex-plugins/.github/actions/notify-deploys@master
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_DEFAULT_REGION }}
slack-message: '`[Serverless]` Release from ${{ github.ref_type }} `${{ github.ref_name }}` requested by `${{ github.triggering_actor }}` completed with SHA ${{ github.sha }}. Release tag is `${{ steps.create_pre_release.outputs.generated-pre-release-tag }}` :rocket:.'
env:
SLACK_BOT_TOKEN: ${{ env.GITHUB_ACTIONS_SLACK_BOT_TOKEN }}