name: ci

on:
  schedule:
    - cron: '0 10 * * *' # everyday at 10am
  pull_request:
    branches:
      - master
      - releases/v*
  push:
    branches:
      - master
      - releases/v*

jobs:
  armored:
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os:
          - ubuntu-latest
          - macOS-latest
          - windows-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v2.3.1
      -
        name: Get test key and passphrase
        uses: actions/github-script@v2
        id: test
        with:
          script: |
            const fs = require('fs');
            core.setOutput('pgp', fs.readFileSync('.github/test-key.pgp', {encoding: 'utf8'}));
            core.setOutput('passphrase', fs.readFileSync('.github/test-key.pass', {encoding: 'utf8'}));
      -
        name: Import GPG
        id: import_gpg
        uses: ./
        with:
          git_user_signingkey: true
          git_commit_gpgsign: true
          git_tag_gpgsign: true
          git_push_gpgsign: true
        env:
          GPG_PRIVATE_KEY: ${{ steps.test.outputs.pgp }}
          PASSPHRASE: ${{ steps.test.outputs.passphrase }}
      -
        name: GPG user IDs
        run: |
          echo "fingerprint: ${{ steps.import_gpg.outputs.fingerprint }}"
          echo "keyid:       ${{ steps.import_gpg.outputs.keyid }}"
          echo "name:        ${{ steps.import_gpg.outputs.name }}"
          echo "email:       ${{ steps.import_gpg.outputs.email }}"

  base64:
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os:
          - ubuntu-latest
          - macOS-latest
          - windows-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v2.3.1
      -
        name: Get test key and passphrase
        uses: actions/github-script@v2
        id: test
        with:
          script: |
            const fs = require('fs');
            core.setOutput('pgp-base64', fs.readFileSync('.github/test-key-base64.pgp', {encoding: 'utf8'}));
            core.setOutput('passphrase', fs.readFileSync('.github/test-key.pass', {encoding: 'utf8'}));
      -
        name: Import GPG
        id: import_gpg
        uses: ./
        with:
          git_user_signingkey: true
          git_commit_gpgsign: true
          git_tag_gpgsign: true
          git_push_gpgsign: true
        env:
          GPG_PRIVATE_KEY: ${{ steps.test.outputs.pgp-base64 }}
          PASSPHRASE: ${{ steps.test.outputs.passphrase }}
      -
        name: GPG user IDs
        run: |
          echo "fingerprint: ${{ steps.import_gpg.outputs.fingerprint }}"
          echo "keyid:       ${{ steps.import_gpg.outputs.keyid }}"
          echo "name:        ${{ steps.import_gpg.outputs.name }}"
          echo "email:       ${{ steps.import_gpg.outputs.email }}"