democratic-csi/.github/workflows/main.yml

146 lines
4.3 KiB
YAML

name: CI
on:
push:
tags:
- "v*"
branches:
- master
- next
jobs:
cancel-previous-runs:
runs-on: ubuntu-latest
steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.6.0
with:
access_token: ${{ github.token }}
csi-sanity-synology:
strategy:
fail-fast: false
matrix:
config:
- synlogy/iscsi.yaml
runs-on:
- self-hosted
- csi-sanity-synology
steps:
- uses: actions/checkout@v2
- name: csi-sanity
run: |
# run tests
ci/bin/run.sh
env:
TEMPLATE_CONFIG_FILE: "./ci/configs/${{ matrix.config }}"
SYNOLOGY_HOST: ${{ secrets.SANITY_SYNOLOGY_HOST }}
SYNOLOGY_PORT: ${{ secrets.SANITY_SYNOLOGY_PORT }}
SYNOLOGY_USERNAME: ${{ secrets.SANITY_SYNOLOGY_USERNAME }}
SYNOLOGY_PASSWORD: ${{ secrets.SANITY_SYNOLOGY_PASSWORD }}
SYNOLOGY_VOLUME: ${{ secrets.SANITY_SYNOLOGY_VOLUME }}
# api-based drivers
csi-sanity-truenas-scale:
strategy:
fail-fast: false
matrix:
config:
- truenas/scale-iscsi.yaml
- truenas/scale-nfs.yaml
# 80 char limit
#- truenas/scale-smb.yaml
runs-on:
- self-hosted
- csi-sanity-truenas-scale
steps:
- uses: actions/checkout@v2
- name: csi-sanity
run: |
# run tests
ci/bin/run.sh
env:
TEMPLATE_CONFIG_FILE: "./ci/configs/${{ matrix.config }}"
TRUENAS_HOST: ${{ secrets.SANITY_TRUENAS_SCALE_HOST }}
TRUENAS_USERNAME: ${{ secrets.SANITY_TRUENAS_SCALE_USERNAME }}
TRUENAS_PASSWORD: ${{ secrets.SANITY_TRUENAS_SCALE_PASSWORD }}
# ssh-based drivers
csi-sanity-truenas-core:
strategy:
fail-fast: false
matrix:
config:
# 63 char limit
#- truenas/core-iscsi.yaml
- truenas/core-nfs.yaml
# 80 char limit
#- truenas/core-smb.yaml
runs-on:
- self-hosted
- csi-sanity-truenas-core
steps:
- uses: actions/checkout@v2
- name: csi-sanity
run: |
# run tests
ci/bin/run.sh
env:
TEMPLATE_CONFIG_FILE: "./ci/configs/${{ matrix.config }}"
TRUENAS_HOST: ${{ secrets.SANITY_TRUENAS_CORE_HOST }}
TRUENAS_USERNAME: ${{ secrets.SANITY_TRUENAS_CORE_USERNAME }}
TRUENAS_PASSWORD: ${{ secrets.SANITY_TRUENAS_CORE_PASSWORD }}
# ssh-based drivers
csi-sanity-zfs-generic:
strategy:
fail-fast: false
matrix:
config:
- zfs-generic/iscsi.yaml
- zfs-generic/nfs.yaml
runs-on:
- self-hosted
- csi-sanity-zfs-generic
steps:
- uses: actions/checkout@v2
- name: csi-sanity
run: |
# run tests
ci/bin/run.sh
env:
TEMPLATE_CONFIG_FILE: "./ci/configs/${{ matrix.config }}"
SERVER_HOST: ${{ secrets.SANITY_ZFS_GENERIC_HOST }}
SERVER_USERNAME: ${{ secrets.SANITY_ZFS_GENERIC_USERNAME }}
SERVER_PASSWORD: ${{ secrets.SANITY_ZFS_GENERIC_PASSWORD }}
build:
needs:
- csi-sanity-synology
- csi-sanity-truenas-scale
- csi-sanity-truenas-core
- csi-sanity-zfs-generic
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: docker build
run: |
export ARCH=$([ $(uname -m) = "x86_64" ] && echo "amd64" || echo "arm64")
mkdir -p ~/.docker/cli-plugins/
wget -qO ~/.docker/cli-plugins/docker-buildx https://github.com/docker/buildx/releases/download/v0.5.1/buildx-v0.5.1.linux-${ARCH}
chmod a+x ~/.docker/cli-plugins/docker-buildx
docker info
docker buildx version
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker buildx create --name xbuilder --use
docker buildx inspect --bootstrap
.github/bin/docker-release.sh
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
GHCR_USERNAME: ${{ secrets.GHCR_USERNAME }}
GHCR_PASSWORD: ${{ secrets.GHCR_PASSWORD }}
DOCKER_CLI_EXPERIMENTAL: enabled
DOCKER_BUILD_PLATFORM: linux/amd64,linux/arm64,linux/arm/v7