diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 695d547..a92e835 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,17 +2,31 @@ on: push name: Run acceptance tests jobs: - use-connect-without-export-env: - runs-on: ubuntu-latest + test-with-output-secrets: + strategy: + matrix: + os: [ ubuntu-latest, macos-latest ] + auth: [ connect, service-account ] + exclude: + - os: macos-latest + auth: connect + runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Launch 1Password Connect instance + if: ${{ matrix.auth == 'connect' }} 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: Configure Service account + if: ${{ matrix.auth == 'service-account' }} + uses: ./configure + with: + service-account-token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - name: Configure 1Password Connect + if: ${{ matrix.auth == 'connect' }} uses: ./configure # 1password/load-secrets-action/configure@ with: connect-host: localhost:8080 @@ -32,17 +46,31 @@ jobs: SECRET_IN_SECTION: ${{ steps.load_secrets.outputs.SECRET_IN_SECTION }} MULTILINE_SECRET: ${{ steps.load_secrets.outputs.MULTILINE_SECRET }} run: ./tests/assert-env-set.sh - use-connect-with-export-env: - runs-on: ubuntu-latest + test-with-export-env: + strategy: + matrix: + os: [ ubuntu-latest, macos-latest ] + auth: [ connect, service-account ] + exclude: + - os: macos-latest + auth: connect + runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Launch 1Password Connect instance + if: ${{ matrix.auth == 'connect' }} 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: Configure Service account + if: ${{ matrix.auth == 'service-account' }} + uses: ./configure + with: + service-account-token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - name: Configure 1Password Connect + if: ${{ matrix.auth == 'connect' }} uses: ./configure # 1password/load-secrets-action/configure@ with: connect-host: http://localhost:8080 @@ -62,17 +90,31 @@ jobs: unset-previous: true - name: Assert removed secrets run: ./tests/assert-env-unset.sh - use-connect-with-references-with-id: - runs-on: ubuntu-latest + test-references-with-ids: + strategy: + matrix: + os: [ ubuntu-latest, macos-latest ] + auth: [ connect, service-account ] + exclude: + - os: macos-latest + auth: connect + runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Launch 1Password Connect instance + if: ${{ matrix.auth == 'connect' }} 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: Configure Service account + if: ${{ matrix.auth == 'service-account' }} + uses: ./configure + with: + service-account-token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - name: Configure 1Password Connect + if: ${{ matrix.auth == 'connect' }} uses: ./configure # 1password/load-secrets-action/configure@ with: connect-host: http://localhost:8080 @@ -92,77 +134,3 @@ jobs: SECRET_IN_SECTION: ${{ steps.load_secrets.outputs.SECRET_IN_SECTION }} MULTILINE_SECRET: ${{ steps.load_secrets.outputs.MULTILINE_SECRET }} run: ./tests/assert-env-set.sh - use-service-account-without-export-env: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Load secrets - id: load_secrets - uses: ./ # 1password/load-secrets-action@ - with: - export-env: false - env: - OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - SECRET: op://acceptance-tests/test-secret/password - SECRET_IN_SECTION: op://acceptance-tests/test-secret/test-section/password - MULTILINE_SECRET: op://acceptance-tests/multiline-secret/notesPlain - - name: Assert test secret values - env: - SECRET: ${{ steps.load_secrets.outputs.SECRET }} - SECRET_IN_SECTION: ${{ steps.load_secrets.outputs.SECRET_IN_SECTION }} - MULTILINE_SECRET: ${{ steps.load_secrets.outputs.MULTILINE_SECRET }} - run: ./tests/assert-env-set.sh - use-service-account-with-export-env: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Load secrets - id: load_secrets - uses: ./ # 1password/load-secrets-action@ - env: - OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - SECRET: op://acceptance-tests/test-secret/password - SECRET_IN_SECTION: op://acceptance-tests/test-secret/test-section/password - MULTILINE_SECRET: op://acceptance-tests/multiline-secret/notesPlain - - name: Assert test secret values - run: ./tests/assert-env-set.sh - use-service-account-with-references-with-id: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Load secrets - id: load_secrets - uses: ./ # 1password/load-secrets-action@ - with: - export-env: false - env: - OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - SECRET: op://v5pz6venw4roosmkzdq2nhpv6u/hrgkzhrlvscomepxlgafb2m3ca/password - SECRET_IN_SECTION: op://v5pz6venw4roosmkzdq2nhpv6u/hrgkzhrlvscomepxlgafb2m3ca/Section_tco6nsqycj6jcbyx63h5isxcny/doxu3mhkozcznnk5vjrkpdqayy - MULTILINE_SECRET: op://v5pz6venw4roosmkzdq2nhpv6u/ghtz3jvcc6dqmzc53d3r3eskge/notesPlain - - name: Assert test secret values - env: - SECRET: ${{ steps.load_secrets.outputs.SECRET }} - SECRET_IN_SECTION: ${{ steps.load_secrets.outputs.SECRET_IN_SECTION }} - MULTILINE_SECRET: ${{ steps.load_secrets.outputs.MULTILINE_SECRET }} - run: ./tests/assert-env-set.sh - run-on-macos-12: - runs-on: macos-12 - steps: - - uses: actions/checkout@v2 - - name: Load secrets - id: load_secrets - uses: ./ # 1password/load-secrets-action@ - with: - export-env: false - env: - OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - SECRET: op://acceptance-tests/test-secret/password - SECRET_IN_SECTION: op://acceptance-tests/test-secret/test-section/password - MULTILINE_SECRET: op://acceptance-tests/multiline-secret/notesPlain - - name: Assert test secret values - env: - SECRET: ${{ steps.load_secrets.outputs.SECRET }} - SECRET_IN_SECTION: ${{ steps.load_secrets.outputs.SECRET_IN_SECTION }} - MULTILINE_SECRET: ${{ steps.load_secrets.outputs.MULTILINE_SECRET }} - run: ./tests/assert-env-set.sh