From 9bb44334eb1783a814c48f91d3d643f7c31d3ed2 Mon Sep 17 00:00:00 2001 From: Eddy Filip Date: Mon, 10 Apr 2023 16:52:51 +0200 Subject: [PATCH] Compress tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since we use matrices now for os and authentication type, we’ve optimized the yaml file to have only 3 jobs, each one making 3 separate piepeline tests (2 for service accounts, 1 for Connect) --- .github/workflows/test.yml | 93 +++++++++++--------------------------- 1 file changed, 26 insertions(+), 67 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 05f9de4..a92e835 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -46,20 +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: + test-with-export-env: strategy: matrix: - os: [ ubuntu-latest ] + os: [ ubuntu-latest, macos-latest ] + auth: [ connect, service-account ] + exclude: + - os: macos-latest + auth: connect runs-on: ${{ matrix.os }} steps: - 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 @@ -79,20 +90,31 @@ jobs: unset-previous: true - name: Assert removed secrets run: ./tests/assert-env-unset.sh - use-connect-with-references-with-id: + test-references-with-ids: strategy: matrix: - os: [ ubuntu-latest ] + os: [ ubuntu-latest, macos-latest ] + auth: [ connect, service-account ] + exclude: + - os: macos-latest + auth: connect runs-on: ${{ matrix.os }} steps: - 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 @@ -112,66 +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: - strategy: - matrix: - os: [ ubuntu-latest, macos-latest ] - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v3 - - 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: - strategy: - matrix: - os: [ ubuntu-latest, macos-latest ] - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v3 - - 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: - strategy: - matrix: - os: [ ubuntu-latest, macos-latest ] - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v3 - - 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