78 lines
3.1 KiB
YAML
78 lines
3.1 KiB
YAML
on: push
|
|
name: Run acceptance tests
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Launch 1Password Connect instance
|
|
env:
|
|
OP_CONNECT_CREDENTIALS: ${{ secrets.OP_CONNECT_CREDENTIALS }}
|
|
run: |
|
|
echo "$OP_CONNECT_CREDENTIALS" > 1password-credentials.json
|
|
docker-compose -f tests/fixtures/docker-compose.yml up -d && sleep 10
|
|
- name: Load secrets
|
|
uses: ./
|
|
env:
|
|
OP_CONNECT_HOST: http://localhost:8080
|
|
OP_CONNECT_TOKEN: ${{ secrets.OP_CONNECT_TOKEN }}
|
|
SECRET: op://v5pz6venw4roosmkzdq2nhpv6u/hrgkzhrlvscomepxlgafb2m3ca/password
|
|
MULTILINE_SECRET: op://v5pz6venw4roosmkzdq2nhpv6u/ghtz3jvcc6dqmzc53d3r3eskge/notesPlain
|
|
- name: Print environment variables with masked secrets
|
|
run: printenv
|
|
- name: Assert test secret values
|
|
env:
|
|
EXPECTED_SECRET: RGVhciBzZWN1cml0eSByZXNlYXJjaGVyLCB0aGlzIGlzIGp1c3QgYSBkdW1teSBzZWNyZXQuIFBsZWFzZSBkb24ndCByZXBvcnQgaXQu
|
|
EXPECTED_MULTILINE_SECRET: |-
|
|
-----BEGIN PRIVATE KEY-----
|
|
RGVhciBzZWN1cml0eSByZXNlYXJjaGVyLApXaGls
|
|
ZSB3ZSBkZWVwbHkgYXBwcmVjaWF0ZSB5b3VyIHZp
|
|
Z2lsYW5jZSBhbmQgZWZmb3J0cyB0byBtYWtlIHRo
|
|
ZSB3b3JsZCBtb3JlIHNlY3VyZSwgSSdtIGFmcmFp
|
|
ZCBJIG11c3QgdGVsbCB5b3UgdGhhdCB0aGlzIHZh
|
|
bHVlIGlzIG5vdCBhIGFjdHVhbCBwcml2YXRlIGtl
|
|
eS4gCkl0J3MgYSBqdXN0IGEgZHVtbXkgc2VjcmV0
|
|
IHRoYXQgd2UgdXNlIHRvIHRlc3QgdmFyaW91cyAx
|
|
UGFzc3dvcmQgc2VjcmV0cyBpbnRlZ3JhdGlvbnMu
|
|
IApTbyBwbGVhc2UgZG9uJ3QgcmVwb3J0IGl0IQo=
|
|
-----END PRIVATE KEY-----
|
|
run: |
|
|
if [ "$SECRET" != "$EXPECTED_SECRET" ]; then
|
|
echo -e "Expected test SECRET to be set to:\n$EXPECTED_SECRET\nBut got:\n$SECRET"
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$MULTILINE_SECRET" != "$EXPECTED_MULTILINE_SECRET" ]; then
|
|
echo -e "Expected MULTILINE_SECRET to be set to:\n$EXPECTED_MULTILINE_SECRET\nBut got:\n$MULTILINE_SECRET"
|
|
exit 1
|
|
fi
|
|
- name: Remove secrets
|
|
uses: ./
|
|
with:
|
|
unset-previous: true
|
|
- name: Print environment variables with secrets removed
|
|
run: printenv
|
|
- name: Assert removed secrets
|
|
run: |
|
|
if [ -n "$SECRET" ] || [ -n "$MULTILINE_SECRET" ]; then
|
|
echo "Expected secrets from 1Password to be unset"
|
|
exit 1
|
|
fi
|
|
- name: Load secret again
|
|
uses: ./
|
|
env:
|
|
OP_CONNECT_HOST: http://localhost:8080
|
|
OP_CONNECT_TOKEN: ${{ secrets.OP_CONNECT_TOKEN }}
|
|
SECRET: op://v5pz6venw4roosmkzdq2nhpv6u/hrgkzhrlvscomepxlgafb2m3ca/password
|
|
- name: Print environment variables with masked secrets
|
|
run: printenv
|
|
- name: Assert test secret value
|
|
env:
|
|
EXPECTED_SECRET: RGVhciBzZWN1cml0eSByZXNlYXJjaGVyLCB0aGlzIGlzIGp1c3QgYSBkdW1teSBzZWNyZXQuIFBsZWFzZSBkb24ndCByZXBvcnQgaXQu
|
|
run: |
|
|
if [ "$SECRET" != "$EXPECTED_SECRET" ]; then
|
|
echo -e "Expected test SECRET to be set to:\n$EXPECTED_SECRET\nBut got:\n$SECRET"
|
|
exit 1
|
|
fi
|