mirror of
https://github.com/dokku/dokku.git
synced 2025-12-29 00:25:08 +01:00
As of April 2021, it will no longer be an LTS release, and thus us supporting it will increase maintenance burdens. Also switch CI to use 18.04, so as to test what we currently support. Closes #4505
163 lines
4.0 KiB
YAML
163 lines
4.0 KiB
YAML
---
|
|
name: CI
|
|
|
|
# yamllint disable-line rule:truthy
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- '*'
|
|
push:
|
|
branches:
|
|
- 'master'
|
|
|
|
jobs:
|
|
build:
|
|
name: build
|
|
runs-on: ubuntu-18.04
|
|
outputs:
|
|
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
|
strategy:
|
|
fail-fast: true
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: build package
|
|
run: ./tests/ci/setup.sh build
|
|
|
|
- name: set matrix for build
|
|
id: set-matrix
|
|
run: |
|
|
json=$(python .github/commands/matrix)
|
|
echo $json
|
|
echo "::set-output name=matrix::$(echo "$json")"
|
|
|
|
- name: upload packages
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: build
|
|
path: build
|
|
|
|
unit-tests:
|
|
name: unit.${{ matrix.index }}
|
|
needs: build
|
|
runs-on: ubuntu-18.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix: ${{fromJson(needs.build.outputs.matrix)}}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: download packages
|
|
uses: actions/download-artifact@v1
|
|
with:
|
|
name: build
|
|
|
|
- name: ci-setup
|
|
run: ./.github/commands/ci-setup
|
|
|
|
# - name: start ssh session
|
|
# uses: luchihoratiu/debug-via-ssh@main
|
|
# with:
|
|
# NGROK_AUTH_TOKEN: ${{ secrets.NGROK_AUTH_TOKEN }}
|
|
# SSH_PASS: ${{ secrets.SSH_PASS }}
|
|
|
|
- name: run ci
|
|
timeout-minutes: 30
|
|
run: sudo -E ./.github/commands/ci-run ${{ matrix.index }}
|
|
env:
|
|
SYNC_GITHUB_PASSWORD: ${{ secrets.SYNC_GITHUB_PASSWORD }}
|
|
SYNC_GITHUB_USERNAME: ${{ secrets.SYNC_GITHUB_USERNAME }}
|
|
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: test-results-${{ matrix.index }}
|
|
path: test-results
|
|
|
|
docker-deploy-tests:
|
|
name: docker
|
|
needs: build
|
|
runs-on: ubuntu-18.04
|
|
strategy:
|
|
fail-fast: false
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: download packages
|
|
uses: actions/download-artifact@v1
|
|
with:
|
|
name: build
|
|
|
|
- name: ci-setup
|
|
run: ./.github/commands/ci-setup
|
|
|
|
- name: test docker deploys
|
|
shell: bash
|
|
timeout-minutes: 20
|
|
run: |
|
|
./tests/ci/setup.sh docker
|
|
DOKKU_SSH_PORT=3022 sudo -E make -e test-ci-docker
|
|
|
|
go-tests:
|
|
name: go.${{ matrix.index }}
|
|
needs: build
|
|
runs-on: ubuntu-18.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
index: [0, 1, 2, 3]
|
|
env:
|
|
GITHUB_NODE_INDEX: ${{ matrix.index }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: download packages
|
|
uses: actions/download-artifact@v1
|
|
with:
|
|
name: build
|
|
|
|
- name: ci-setup
|
|
run: ./.github/commands/ci-setup
|
|
|
|
- name: run go tests
|
|
run: |
|
|
export CIRCLE_SHA1=$GITHUB_SHA
|
|
echo "CODACY_TOKEN=$CODACY_TOKEN"
|
|
if [ "$CODACY_TOKEN" != "" ]; then
|
|
echo "Detected value for CODACY_TOKEN"
|
|
fi
|
|
case $GITHUB_NODE_INDEX in
|
|
0) sudo -E make -e lint-ci go-tests ci-go-coverage ;;
|
|
1) sudo -E make -e deploy-test-checks-root deploy-test-config ;;
|
|
2) sudo -E make -e deploy-test-multi ;;
|
|
3) sudo -E make -e deploy-test-go-fail-predeploy deploy-test-go-fail-postdeploy ;;
|
|
esac
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: coverage.${{ matrix.index }}
|
|
path: test-results/coverage
|
|
|
|
publish-test-results:
|
|
name: publish-test-results
|
|
needs: unit-tests
|
|
runs-on: ubuntu-18.04
|
|
# the build-and-test job might be skipped, we don't need to run this job then
|
|
if: success() || failure()
|
|
|
|
steps:
|
|
- name: download test-results
|
|
uses: actions/download-artifact@v2
|
|
with:
|
|
path: test-results
|
|
|
|
- name: Publish Unit Test Results
|
|
uses: docker://ghcr.io/enricomi/publish-unit-test-result-action:v1.6
|
|
with:
|
|
check_name: Unit Test Results
|
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
files: test-results/**/*.xml
|
|
comment_on_pr: false
|