mirror of
https://github.com/dokku/dokku.git
synced 2025-12-29 00:25:08 +01:00
While we will still build for 18.04, we will now stop testing against it. Instead, we will test against 20.04, the next EOL release after 18.04. Once Ubuntu 18.04 is EOL, any references to it will also be removed. Note that 18.04 support was already deprecated in Dokku 0.28.0, so this change is just acknowledging that deprecation.
176 lines
4.4 KiB
YAML
176 lines
4.4 KiB
YAML
---
|
|
name: CI
|
|
|
|
# yamllint disable-line rule:truthy
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- '*'
|
|
push:
|
|
branches:
|
|
- 'master'
|
|
|
|
jobs:
|
|
build:
|
|
name: build
|
|
runs-on: ubuntu-20.04
|
|
outputs:
|
|
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
|
strategy:
|
|
fail-fast: true
|
|
timeout-minutes: 45
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: set up qemu
|
|
uses: docker/setup-qemu-action@v2
|
|
|
|
- name: set up docker buildx
|
|
id: buildx
|
|
uses: docker/setup-buildx-action@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 "matrix=$json" >> $GITHUB_OUTPUT
|
|
|
|
- name: upload packages
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: build
|
|
path: build
|
|
|
|
unit-tests:
|
|
name: unit.${{ matrix.index }}
|
|
needs: build
|
|
runs-on: ubuntu-20.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix: ${{fromJson(needs.build.outputs.matrix)}}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: download packages
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
name: build
|
|
path: 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:
|
|
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
SYNC_GITHUB_PASSWORD: ${{ secrets.SYNC_GITHUB_PASSWORD }}
|
|
SYNC_GITHUB_USERNAME: ${{ secrets.SYNC_GITHUB_USERNAME }}
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: test-results-${{ matrix.index }}
|
|
path: test-results
|
|
|
|
docker-deploy-tests:
|
|
name: docker
|
|
needs: build
|
|
runs-on: ubuntu-20.04
|
|
strategy:
|
|
fail-fast: false
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: download packages
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
name: build
|
|
path: 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-20.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
index: [0, 1, 2, 3]
|
|
env:
|
|
GITHUB_NODE_INDEX: ${{ matrix.index }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: download packages
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
name: build
|
|
path: 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@v3
|
|
with:
|
|
name: coverage.${{ matrix.index }}
|
|
path: test-results/coverage
|
|
|
|
publish-test-results:
|
|
name: publish-test-results
|
|
needs: unit-tests
|
|
runs-on: ubuntu-20.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@v3
|
|
with:
|
|
path: test-results
|
|
|
|
- name: Publish Unit Test Results
|
|
uses: EnricoMi/publish-unit-test-result-action@v2
|
|
with:
|
|
check_name: Unit Test Results
|
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
junit_files: test-results/**/*.xml
|
|
comment_mode: "off"
|