add ci ssh key and gpg key #217
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
pull_request: {} | |
push: | |
tags: | |
- v* | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
ssh-key: ${{ secrets.GH_PAT }} | |
- name: Import GPG Key | |
env: | |
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY2 }} | |
GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }} | |
run: | | |
echo "$GPG_PRIVATE_KEY" | gpg --import | |
git config --global user.signingkey $GPG_KEY_ID | |
git config --global commit.gpgsign true | |
# Configure Git with CI account details | |
git config --global user.name "ci-dominantstrategies" | |
git config --global user.email "[email protected]" | |
# Optionally, check that the GPG key is correctly configured for signing | |
gpg --list-keys "[email protected]" | |
- name: Read .nvmrc | |
run: echo "NVMRC=$(cat ./.nvmrc)" >> $GITHUB_OUTPUT | |
id: nvm | |
- name: Use Node + Yarn | |
uses: actions/setup-node@v3 | |
with: | |
node-version: "${{ steps.nvm.outputs.NVMRC }}" | |
cache: "yarn" | |
- run: yarn install --frozen-lockfile | |
- name: Detect env block | |
id: env-block | |
if: github.ref != 'refs/heads/main' && !startsWith(github.ref, 'refs/tags/') | |
uses: actions/github-script@v6 | |
with: | |
script: | | |
const detectEnvBlock = require("./.github/workflows/builds/detect-env-block.js") | |
return await detectEnvBlock({ github, context }) | |
- name: Dev build | |
if: github.ref != 'refs/heads/main' && !startsWith(github.ref, 'refs/tags/') | |
run: | | |
echo -e ${{ steps.env-block.outputs.result }} > .env | |
echo 'USE_ANALYTICS_SOURCE="BETA"' >> .env | |
yarn build | |
env: | |
ALCHEMY_KEY: ${{ secrets.DEV_ALCHEMY_API_KEY || 'oV1Rtjh61hGa97X2MTqMY9kEUcpxP-6K' }} | |
BLOCKNATIVE_API_KEY: ${{ secrets.DEV_BLOCKNATIVE_API_KEY || 'f60816ff-da02-463f-87a6-67a09c6d53fa' }} | |
DAYLIGHT_API_KEY: ${{ secrets.DAYLIGHT_API_KEY }} | |
COMMIT_SHA: ${{ github.sha }} | |
- name: Production build | |
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/') | |
run: | | |
echo 'USE_ANALYTICS_SOURCE="PROD"' >> .env | |
yarn build | |
env: | |
ALCHEMY_KEY: ${{ secrets.ALCHEMY_API_KEY }} | |
BLOCKNATIVE_API_KEY: ${{ secrets.BLOCKNATIVE_API_KEY }} | |
UNS_API_KEY: ${{ secrets.UNS_API_KEY }} | |
SIMPLE_HASH_API_KEY: ${{ secrets.SIMPLE_HASH_API_KEY }} | |
ZEROX_API_KEY: ${{ secrets.ZEROX_API_KEY }} | |
COMMIT_SHA: ${{ github.sha }} | |
POAP_API_KEY: ${{ secrets.POAP_API_KEY }} | |
DAYLIGHT_API_KEY: ${{ secrets.DAYLIGHT_API_KEY }} | |
- name: Upload build asset | |
if: ${{ !startsWith(github.ref, 'refs/tags/') }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: extension-builds-${{ github.event.number || github.event.head_commit.id }} | |
path: dist/*.zip | |
- name: Create Release and Upload Artifacts | |
uses: softprops/action-gh-release@1e07f4398721186383de40550babbdf2b84acfc5 # v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: dist/*.zip | |
draft: true | |
generate_release_notes: true | |
prerelease: ${{ contains(github.ref, '-pre') || contains(github.ref, 'v0.') }} | |
## test: | |
## runs-on: ubuntu-latest | |
## steps: | |
## - uses: actions/checkout@v3 | |
## - name: Read .nvmrc | |
## run: echo "NVMRC=$(cat ./.nvmrc)" >> $GITHUB_OUTPUT | |
## id: nvm | |
## - name: Use Node + Yarn | |
## uses: actions/setup-node@v3 | |
## with: | |
## node-version: "${{ steps.nvm.outputs.NVMRC }}" | |
## cache: "yarn" | |
## - run: yarn install --frozen-lockfile | |
## - run: yarn test | |
## lint: | |
## runs-on: ubuntu-latest | |
## steps: | |
## - uses: actions/checkout@v3 | |
## - name: Read .nvmrc | |
## run: echo "NVMRC=$(cat ./.nvmrc)" >> $GITHUB_OUTPUT | |
## id: nvm | |
## - name: Use Node + Yarn | |
## uses: actions/setup-node@v3 | |
## with: | |
## node-version: "${{ steps.nvm.outputs.NVMRC }}" | |
## cache: "yarn" | |
## - run: yarn install --frozen-lockfile | |
## - run: yarn lint | |
detect-if-flag-changed: | |
runs-on: ubuntu-latest | |
outputs: | |
path-filter: ${{ steps.filter.outputs.path-filter }} | |
steps: | |
- uses: actions/checkout@v3 | |
if: github.event_name == 'pull_request' | |
- uses: dorny/paths-filter@v2 | |
if: github.event_name == 'pull_request' | |
id: filter | |
with: | |
filters: | | |
path-filter: | |
- '.env.defaults' | |
## e2e-tests: | |
## if: | | |
## github.ref == 'refs/heads/main' | |
## || contains(github.head_ref, 'e2e') | |
## || needs.detect-if-flag-changed.outputs.path-filter == 'true' | |
## needs: [build, detect-if-flag-changed] | |
## timeout-minutes: 60 | |
## runs-on: ubuntu-latest | |
## steps: | |
## - uses: actions/checkout@v3 | |
## - name: Read .nvmrc | |
## run: echo "NVMRC=$(cat ./.nvmrc)" >> $GITHUB_OUTPUT | |
## id: nvm | |
## - name: Use Node + Yarn | |
## uses: actions/setup-node@v3 | |
## with: | |
## node-version: "${{ steps.nvm.outputs.NVMRC }}" | |
## cache: "yarn" | |
## - run: yarn install --frozen-lockfile | |
## - name: Install Playwright Browsers | |
## run: npx playwright install --with-deps chromium | |
## - uses: actions/download-artifact@v3 | |
## with: | |
## name: extension-builds-${{ github.event.number || github.event.head_commit.id }} | |
## - name: Extract extension | |
## run: unzip -o chrome.zip -d dist/chrome | |
## - name: Run Playwright tests | |
## run: xvfb-run npx playwright test | |
## #env: | |
## # DEBUG: pw:api* | |
## - uses: actions/upload-artifact@v3 | |
## if: failure() | |
## with: | |
## name: debug-output | |
## path: | | |
## test-results/ | |
## #videos/ | |
## retention-days: 30 |