Skip to content

Support bot protection in branches #8591

Support bot protection in branches

Support bot protection in branches #8591

Workflow file for this run

name: CI
on:
push:
branches:
- '*'
- '!gh-pages'
tags:
- '*'
pull_request:
branches:
- '*'
- '!gh-pages'
jobs:
authui-test:
if: ${{ github.repository != 'oursky/authgear-server' }}
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: "./.tool-versions"
- run: npm ci
working-directory: ./authui
- run: npm audit
working-directory: ./authui
if: ${{ !cancelled() }}
- run: npm run typecheck
working-directory: ./authui
if: ${{ !cancelled() }}
- run: npm run eslint
working-directory: ./authui
if: ${{ !cancelled() }}
- run: npm run stylelint
working-directory: ./authui
if: ${{ !cancelled() }}
- run: npm run prettier
working-directory: ./authui
if: ${{ !cancelled() }}
- run: npm run build
working-directory: ./authui
if: ${{ !cancelled() }}
portal-test:
if: ${{ github.repository != 'oursky/authgear-server' }}
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/libvips
- uses: actions/setup-node@v4
with:
node-version-file: "./.tool-versions"
- run: npm ci
working-directory: ./portal
- run: npm audit
working-directory: ./portal
if: ${{ !cancelled() }}
- run: npm run typecheck
working-directory: ./portal
if: ${{ !cancelled() }}
- run: npm run eslint
working-directory: ./portal
if: ${{ !cancelled() }}
- run: npm run stylelint
working-directory: ./portal
if: ${{ !cancelled() }}
- run: npm run fmt
working-directory: ./portal
if: ${{ !cancelled() }}
- run: npm run test
working-directory: ./portal
if: ${{ !cancelled() }}
- run: npm run gentype
working-directory: ./portal
if: ${{ !cancelled() }}
- run: make check-tidy
working-directory: ./portal
if: ${{ !cancelled() }}
- run: npm run build
working-directory: ./portal
if: ${{ !cancelled() }}
portal-image:
if: ${{ github.repository != 'oursky/authgear-server' }}
runs-on: ubuntu-22.04
needs: portal-test
env:
TARGET: portal
IMAGE_NAME: authgear-portal
steps:
- uses: actions/checkout@v4
- run: make build-image TARGET=$TARGET IMAGE_NAME=$IMAGE_NAME
- run: make tag-image IMAGE_NAME=$IMAGE_NAME
- name: docker login
if: ${{ github.repository == 'authgear/authgear-server' && github.event_name == 'push' }}
env:
DOCKER_USERNAME: ${{ secrets.QUAY_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.QUAY_ROBOT_TOKEN }}
run: |
printf "$DOCKER_PASSWORD" | docker login --password-stdin --username "$DOCKER_USERNAME" quay.io
- run: make push-image IMAGE_NAME=$IMAGE_NAME
if: ${{ github.repository == 'authgear/authgear-server' && github.event_name == 'push' }}
- name: docker logout
if: ${{ always() }}
run: |
docker logout quay.io
authgear-test:
if: ${{ github.repository != 'oursky/authgear-server' }}
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/libvips
- uses: actions/setup-go@v4
with:
go-version-file: "./go.mod"
- uses: actions/setup-node@v4
with:
node-version-file: "./.tool-versions"
- run: make vendor
- run: make check-dockerignore
if: ${{ !cancelled() }}
- run: make govulncheck
if: ${{ !cancelled() }}
# We cannot enable this until we move to mjml@5
# https://github.com/mjmlio/mjml/issues/2589
#- run: npm audit
# working-directory: ./scripts/npm
# if: ${{ !cancelled() }}
- run: make ensure-important-modules-up-to-date
if: ${{ !cancelled() }}
- run: make lint
if: ${{ !cancelled() }}
- run: make test
if: ${{ !cancelled() }}
- run: make fmt
if: ${{ !cancelled() }}
- run: make check-tidy
if: ${{ !cancelled() }}
authgear-e2e:
if: ${{ github.repository != 'oursky/authgear-server' }}
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/libvips
- uses: actions/setup-go@v4
with:
go-version-file: "./go.mod"
- run: make vendor
# Cache docker images
- run: mkdir -p ~/.cache/images
- id: cache-docker-images
uses: actions/cache@v3
with:
path: ~/.cache/images
key: ${{ runner.os }}-e2e-docker-images
continue-on-error: true
env:
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 5
- if: ${{ steps.cache-docker-images.outputs.cache-hit == 'true' }}
run: |
docker load -i ~/.cache/images/db.tar || true
docker load -i ~/.cache/images/redis.tar || true
- run: make -C e2e run
if: ${{ !cancelled() }}
env:
COMPOSE_INTERACTIVE_NO_CLI: 1
- run: |
docker save postgres-pg-partman:latest -o ~/.cache/images/db.tar
docker save redis:6.2.6 -o ~/.cache/images/redis.tar
authgear-image:
if: ${{ github.repository != 'oursky/authgear-server' }}
runs-on: ubuntu-22.04
needs: ["authgear-test", "authui-test"]
env:
TARGET: authgear
IMAGE_NAME: authgear-server
steps:
- uses: actions/checkout@v4
- run: make build-image TARGET=$TARGET IMAGE_NAME=$IMAGE_NAME
- run: make tag-image IMAGE_NAME=$IMAGE_NAME
- name: docker login
if: ${{ github.repository == 'authgear/authgear-server' && github.event_name == 'push' }}
env:
DOCKER_USERNAME: ${{ secrets.QUAY_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.QUAY_ROBOT_TOKEN }}
run: |
printf "$DOCKER_PASSWORD" | docker login --password-stdin --username "$DOCKER_USERNAME" quay.io
- run: make push-image IMAGE_NAME=$IMAGE_NAME
if: ${{ github.repository == 'authgear/authgear-server' && github.event_name == 'push' }}
- name: docker logout
if: ${{ always() }}
run: |
docker logout quay.io
release:
if: ${{ github.repository != 'oursky/authgear-server' }}
runs-on: ubuntu-22.04
needs: ["portal-test", "authgear-test"]
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/libvips
- uses: actions/setup-go@v4
with:
go-version-file: "./go.mod"
- uses: actions/setup-node@v4
with:
node-version-file: "./.tool-versions"
- run: make vendor
- run: make binary
- uses: oursky/action-gh-release@v2
if: ${{ github.repository == 'authgear/authgear-server' && startsWith(github.ref, 'refs/tags/') && !startsWith(github.ref, 'refs/tags/staging-') }}
with:
draft: true
files: |
./dist/*