Files
kopia/.github/workflows/provider-tests.yml
Julio Lopez 8706239a9f build(infra): checkout repo before setting up Go (#2903)
This way GH caching for Go packages has a chance to work.
See https://github.com/actions/setup-go#caching-dependency-files-and-build-outputs

* build(providers): checkout repo before setting up Go
* build(infra): checkout repo before setting up Go: apply to other workflows as well.
2023-04-07 17:22:05 -04:00

87 lines
3.6 KiB
YAML

name: Provider Test
on:
push:
branches: [ master, test/providers ]
tags:
- v*
schedule:
# run once per day
- cron: '19 7 * * *'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
provider-test:
name: Provider Test
if: ${{ github.repository == 'kopia/kopia' }}
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '1.20'
id: go
- name: Install Dependencies
run: make provider-tests-deps
- name: Azure
run: make provider-tests PROVIDER_TEST_TARGET=azure
env:
KOPIA_AZURE_TEST_CONTAINER: ${{ secrets.KOPIA_AZURE_TEST_CONTAINER }}
KOPIA_AZURE_TEST_STORAGE_ACCOUNT: ${{ secrets.KOPIA_AZURE_TEST_STORAGE_ACCOUNT }}
KOPIA_AZURE_TEST_STORAGE_KEY: ${{ secrets.KOPIA_AZURE_TEST_STORAGE_KEY }}
KOPIA_AZURE_TEST_SAS_TOKEN: ${{ secrets.KOPIA_AZURE_TEST_SAS_TOKEN }}
- name: B2
run: make provider-tests PROVIDER_TEST_TARGET=b2
env:
KOPIA_B2_TEST_BUCKET: ${{ secrets.KOPIA_B2_TEST_BUCKET }}
KOPIA_B2_TEST_KEY: ${{ secrets.KOPIA_B2_TEST_KEY }}
KOPIA_B2_TEST_KEY_ID: ${{ secrets.KOPIA_B2_TEST_KEY_ID }}
if: ${{ success() || failure() }}
- name: GCS
run: make provider-tests PROVIDER_TEST_TARGET=gcs
env:
KOPIA_GCS_CREDENTIALS_JSON_GZIP: ${{ secrets.KOPIA_GCS_CREDENTIALS_JSON_GZIP }}
KOPIA_GCS_TEST_BUCKET: ${{ secrets.KOPIA_GCS_TEST_BUCKET }}
if: ${{ success() || failure() }}
- name: GDrive
run: make provider-tests PROVIDER_TEST_TARGET=gdrive
env:
KOPIA_GDRIVE_CREDENTIALS_JSON_GZIP: ${{ secrets.KOPIA_GDRIVE_CREDENTIALS_JSON_GZIP }}
KOPIA_GDRIVE_TEST_FOLDER_ID: ${{ secrets.KOPIA_GDRIVE_TEST_FOLDER_ID }}
if: ${{ success() || failure() }}
- name: S3
run: make provider-tests PROVIDER_TEST_TARGET=s3
env:
KOPIA_S3_TEST_ENDPOINT: ${{ secrets.KOPIA_S3_TEST_ENDPOINT }}
KOPIA_S3_TEST_ACCESS_KEY_ID: ${{ secrets.KOPIA_S3_TEST_ACCESS_KEY_ID }}
KOPIA_S3_TEST_SECRET_ACCESS_KEY: ${{ secrets.KOPIA_S3_TEST_SECRET_ACCESS_KEY }}
KOPIA_S3_TEST_BUCKET: ${{ secrets.KOPIA_S3_TEST_BUCKET }}
KOPIA_S3_TEST_REGION: ${{ secrets.KOPIA_S3_TEST_REGION }}
KOPIA_S3_TEST_STS_ACCESS_KEY_ID: ${{ secrets.KOPIA_S3_TEST_STS_ACCESS_KEY_ID }}
KOPIA_S3_TEST_STS_SECRET_ACCESS_KEY: ${{ secrets.KOPIA_S3_TEST_STS_SECRET_ACCESS_KEY }}
KOPIA_S3_TEST_SESSION_TOKEN: ${{ secrets.KOPIA_S3_TEST_SESSION_TOKEN }}
KOPIA_S3_CREDS: ${{ secrets.KOPIA_S3_CREDS }}
KOPIA_S3_VERSIONED_CREDS: ${{ secrets.KOPIA_S3_VERSIONED_CREDS }}
KOPIA_S3_WASABI_CREDS: ${{ secrets.KOPIA_S3_WASABI_CREDS }}
KOPIA_S3_WASABI_VERSIONED_CREDS: ${{ secrets.KOPIA_S3_WASABI_VERSIONED_CREDS }}
if: ${{ success() || failure() }}
- name: Rclone
run: make provider-tests PROVIDER_TEST_TARGET=rclone
env:
KOPIA_RCLONE_EMBEDDED_CONFIG_B64: ${{ secrets.KOPIA_RCLONE_EMBEDDED_CONFIG_B64 }}
if: ${{ success() || failure() }}
- name: SFTP
run: make provider-tests PROVIDER_TEST_TARGET=sftp
if: ${{ success() || failure() }}
- name: WebDAV
run: make provider-tests PROVIDER_TEST_TARGET=webdav
env:
KOPIA_WEBDAV_TEST_URL: ${{ secrets.KOPIA_WEBDAV_TEST_URL }}
KOPIA_WEBDAV_TEST_USERNAME: ${{ secrets.KOPIA_WEBDAV_TEST_USERNAME }}
KOPIA_WEBDAV_TEST_PASSWORD: ${{ secrets.KOPIA_WEBDAV_TEST_PASSWORD }}
if: ${{ success() || failure() }}