Skip to content

Add changelog entry #705

Add changelog entry

Add changelog entry #705

Workflow file for this run

name: CI
on:
push:
pull_request:
workflow_dispatch:
jobs:
unit-tests:
name: "Unit tests"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: docker-compose up -d qualix db node mail
- uses: ./.github/actions/wait-for-container-startup
- run: docker-compose exec -T qualix php artisan config:clear --env=testing
- run: docker-compose exec -T qualix vendor/bin/phpunit
frontend-tests:
name: "Frontend tests"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: docker-compose up -d qualix db node mail
- uses: ./.github/actions/wait-for-container-startup
- run: docker-compose exec -T node npm run test
e2e-tests:
name: "End-to-end tests"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: docker-compose up -d qualix db node mail e2e-mocks
- uses: ./.github/actions/wait-for-container-startup
- run: docker-compose run e2e run
- uses: actions/upload-artifact@v2
if: always()
with:
name: cypress-output
path: |
./cypress/screenshots
./cypress/videos
ci-passed-event:
name: "Send out CI success event"
if: ${{ github.event_name == 'push' }}
needs:
- unit-tests
- frontend-tests
- e2e-tests
runs-on: ubuntu-latest
steps:
- uses: peter-evans/repository-dispatch@v1
env:
REPO_ACCESS_TOKEN: ${{ secrets.REPO_ACCESS_TOKEN }}
if: env.REPO_ACCESS_TOKEN != null
with:
token: ${{ secrets.REPO_ACCESS_TOKEN }}
event-type: ci-passed
client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}"}'
get-environment-name:
name: "Extract environment name"
runs-on: ubuntu-latest
outputs:
environment: ${{ steps.extract.outputs.environment }}
steps:
- id: extract
run: echo "environment=$(echo $GITHUB_REF | sed -e '/^refs\/heads\/deploy-\(.*\)$/!d;s//\1/')" >> $GITHUB_OUTPUT
- env:
EXTRACTED: ${{ steps.extract.outputs.environment }}
run: 'echo "Extracted environment name: $EXTRACTED"'
deploy:
name: "Deploy"
if: ${{ github.event_name == 'push' && needs.get-environment-name.outputs.environment }}
needs:
- unit-tests
- frontend-tests
- e2e-tests
- get-environment-name
environment: ${{ needs.get-environment-name.outputs.environment }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: sudo apt-get update -y && sudo apt-get install -y lftp
- uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_PRIVATE_KEY }}
known_hosts: ${{ secrets.SSH_KNOWN_HOSTS }}
- run: sudo apt-get update -y && sudo apt-get install -y lftp
- uses: ./.github/actions/deploy
with:
ssh-username: ${{ secrets.SSH_USERNAME }}
ssh-host: ${{ secrets.SSH_HOST }}
ssh-directory: ${{ secrets.SSH_DIRECTORY }}
app-name: ${{ secrets.APP_NAME }}
app-key: ${{ secrets.APP_KEY }}
app-url: ${{ secrets.APP_URL }}
app-contact-link: ${{ secrets.APP_CONTACT_LINK }}
app-contact-text: ${{ secrets.APP_CONTACT_TEXT }}
db-host: ${{ secrets.DB_HOST }}
db-database: ${{ secrets.DB_DATABASE }}
db-username: ${{ secrets.DB_USERNAME }}
db-password: ${{ secrets.DB_PASSWORD }}
mail-mailer: ${{ secrets.MAIL_MAILER }}
mail-host: ${{ secrets.MAIL_HOST }}
mail-port: ${{ secrets.MAIL_PORT }}
mail-username: ${{ secrets.MAIL_USERNAME }}
mail-password: ${{ secrets.MAIL_PASSWORD }}
mail-from-address: ${{ secrets.MAIL_FROM_ADDRESS }}
hitobito-base-url: ${{ secrets.HITOBITO_BASE_URL }}
hitobito-client-uid: ${{ secrets.HITOBITO_CLIENT_UID }}
hitobito-client-secret: ${{ secrets.HITOBITO_CLIENT_SECRET }}
collaboration-enabled: ${{ secrets.COLLABORATION_ENABLED }}
collaboration-signaling-servers: ${{ secrets.COLLABORATION_SIGNALING_SERVERS }}
sentry-laravel-dsn: ${{ secrets.SENTRY_LARAVEL_DSN }}
sentry-user-feedback-url: ${{ secrets.SENTRY_USER_FEEDBACK_URL }}
sentry-csp-report-uri: ${{ secrets.SENTRY_CSP_REPORT_URI }}
sentry-vue-dsn: ${{ secrets.SENTRY_VUE_DSN }}
- uses: getsentry/action-release@v1
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_RELEASE_TRACKING_AUTH_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
if: env.SENTRY_AUTH_TOKEN != null
with:
environment: ${{ needs.get-environment-name.outputs.environment }}
projects: ${{ secrets.SENTRY_PROJECTS }}
ignore_missing: true
ignore_empty: true