name: Integration Tests on: pull_request jobs: s3-integration-test: name: Run S3 Integration Tests runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - uses: actions/setup-go@v2 with: go-version: '1.17' - uses: actions/cache@v2 with: path: ~/go/pkg/mod key: ${{ inputs.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: ${{ inputs.os }}-go- - run: go install ./cmd/litestream - run: go test -v -run=TestReplicaClient ./integration -replica-type s3 env: LITESTREAM_S3_ACCESS_KEY_ID: ${{ secrets.LITESTREAM_S3_ACCESS_KEY_ID }} LITESTREAM_S3_SECRET_ACCESS_KEY: ${{ secrets.LITESTREAM_S3_SECRET_ACCESS_KEY }} LITESTREAM_S3_REGION: us-east-1 LITESTREAM_S3_BUCKET: integration.litestream.io gcp-integration-test: name: Run GCP Integration Tests runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - uses: actions/setup-go@v2 with: go-version: '1.17' - uses: actions/cache@v2 with: path: ~/go/pkg/mod key: ${{ inputs.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: ${{ inputs.os }}-go- - name: Extract GCP credentials run: 'echo "$GOOGLE_APPLICATION_CREDENTIALS" > /opt/gcp.json' shell: bash env: GOOGLE_APPLICATION_CREDENTIALS: ${{secrets.GOOGLE_APPLICATION_CREDENTIALS}} - run: go test -v -run=TestReplicaClient ./integration -replica-type gcs env: GOOGLE_APPLICATION_CREDENTIALS: /opt/gcp.json LITESTREAM_GCS_BUCKET: integration.litestream.io abs-integration-test: name: Run Azure Blob Store Integration Tests runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - uses: actions/setup-go@v2 with: go-version: '1.17' - uses: actions/cache@v2 with: path: ~/go/pkg/mod key: ${{ inputs.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: ${{ inputs.os }}-go- - run: go test -v -run=TestReplicaClient ./integration -replica-type abs env: LITESTREAM_ABS_ACCOUNT_NAME: ${{ secrets.LITESTREAM_ABS_ACCOUNT_NAME }} LITESTREAM_ABS_ACCOUNT_KEY: ${{ secrets.LITESTREAM_ABS_ACCOUNT_KEY }} LITESTREAM_ABS_BUCKET: integration # sftp-integration-test: # name: Run SFTP Integration Tests # runs-on: ubuntu-18.04 # steps: # - uses: actions/checkout@v2 # # - uses: actions/setup-go@v2 # with: # go-version: '1.17' # # - uses: actions/cache@v2 # with: # path: ~/go/pkg/mod # key: ${{ inputs.os }}-go-${{ hashFiles('**/go.sum') }} # restore-keys: ${{ inputs.os }}-go- # # - name: Extract SSH key # run: 'echo "$LITESTREAM_SFTP_KEY" > /opt/id_ed25519' # shell: bash # env: # LITESTREAM_SFTP_KEY: ${{secrets.LITESTREAM_SFTP_KEY}} # # - name: Run sftp tests # run: go test -v -run=TestReplicaClient ./integration -replica-type sftp # env: # LITESTREAM_SFTP_HOST: ${{ secrets.LITESTREAM_SFTP_HOST }} # LITESTREAM_SFTP_USER: ${{ secrets.LITESTREAM_SFTP_USER }} # LITESTREAM_SFTP_KEY_PATH: /opt/id_ed25519 # LITESTREAM_SFTP_PATH: ${{ secrets.LITESTREAM_SFTP_PATH }} long-running-test: name: Run Long-Running Test runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - uses: actions/setup-go@v2 with: go-version: '1.17' - uses: actions/cache@v2 with: path: ~/go/pkg/mod key: ${{ inputs.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: ${{ inputs.os }}-go- - run: go install ./cmd/litestream - run: go test -v -run=TestCmd_Replicate_LongRunning ./integration -long-running-duration 1m