acl changes #347
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: CI | |
on: | |
push: | |
branches: | |
- main | |
- v[0-9]+.[0-9x]+.x | |
pull_request: | |
env: | |
NEXT_TELEMETRY_DISABLED: 1 | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
container: public.ecr.aws/sam/build-nodejs14.x:latest | |
steps: | |
- name: Install yarn | |
run: npm install --global [email protected] | |
- uses: actions/checkout@v2 | |
- name: Cache | |
uses: actions/cache@v2 | |
with: | |
path: | | |
.yarn | |
**/node_modules | |
key: ${{ runner.os }}-${{ hashFiles('yarn.lock') }} | |
- name: Install dependencies | |
run: yarn --frozen-lockfile --cache-folder .yarn | |
- name: Build | |
run: yarn build | |
- name: Upload build artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: dist | |
path: | | |
packages/api/dist/ | |
packages/api/dist.zip | |
packages/deploy-controller/dist/ | |
packages/deploy-controller/dist.zip | |
packages/deploy-trigger/dist/ | |
packages/deploy-trigger/dist.zip | |
packages/proxy/dist/ | |
packages/proxy/dist.zip | |
packages/proxy-config/dist/ | |
packages/proxy-config/dist.zip | |
packages/runtime/dist/ | |
packages/tf-next/dist/ | |
if-no-files-found: error | |
test-integration: | |
needs: build | |
runs-on: ubuntu-latest | |
container: public.ecr.aws/sam/build-nodejs14.x:latest | |
services: | |
s3: | |
image: registry.gitlab.com/dealmore/dealmore-build-images:s3-emulator | |
env: | |
MINIO_ACCESS_KEY: test | |
MINIO_SECRET_KEY: testtest | |
dynamodb: | |
image: amazon/dynamodb-local:latest | |
# @note Github overwrites WORKDIR to repository path, so overwrite that again | |
options: >- | |
--workdir /home/dynamodblocal | |
env: | |
# Increase heap size for running the tests | |
NODE_OPTIONS: '--max_old_space_size=4096' | |
MINIO_ACCESS_KEY: test | |
MINIO_SECRET_KEY: testtest | |
S3_ENDPOINT: s3:9000 | |
TEST_DYNAMO_ENDPOINT: http://dynamodb:8000 | |
steps: | |
- name: Install yarn | |
run: npm install --global [email protected] | |
- uses: actions/checkout@v2 | |
- name: Cache | |
uses: actions/cache@v2 | |
with: | |
path: | | |
.yarn | |
**/node_modules | |
key: ${{ runner.os }}-${{ hashFiles('yarn.lock') }} | |
- name: Install dependencies | |
run: yarn --frozen-lockfile --cache-folder .yarn | |
- name: Download build artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
name: dist | |
path: packages | |
- name: Jest | |
run: yarn test:not:runtime | |
# We run the runtime tests in a dedicated task since running it with the | |
# other integration tests would cause a memory overflow. | |
test-integration-runtime: | |
needs: build | |
runs-on: ubuntu-latest | |
container: public.ecr.aws/sam/build-nodejs14.x:latest | |
steps: | |
- name: Install yarn | |
run: npm install --global [email protected] | |
- uses: actions/checkout@v2 | |
- name: Cache | |
uses: actions/cache@v2 | |
with: | |
path: | | |
.yarn | |
**/node_modules | |
key: ${{ runner.os }}-${{ hashFiles('yarn.lock') }} | |
- name: Install dependencies | |
run: yarn --frozen-lockfile --cache-folder .yarn | |
- name: Download build artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
name: dist | |
path: packages | |
- name: Jest | |
run: yarn test:runtime | |
test-e2e-prepare: | |
needs: build | |
runs-on: ubuntu-latest | |
container: public.ecr.aws/sam/build-nodejs14.x:latest | |
steps: | |
- name: Install yarn | |
run: npm install --global [email protected] | |
- uses: actions/checkout@v2 | |
- name: Cache | |
uses: actions/cache@v2 | |
with: | |
path: | | |
.yarn | |
**/node_modules | |
key: ${{ runner.os }}-${{ hashFiles('yarn.lock') }} | |
- name: Yarn install | |
run: yarn --frozen-lockfile --cache-folder .yarn | |
- name: Download build artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
name: dist | |
path: packages | |
- name: Build e2e fixtures | |
run: yarn test:e2e:prepare | |
- name: Upload e2e fixtures | |
uses: actions/upload-artifact@v2 | |
with: | |
name: e2e-fixtures | |
path: test/fixtures/**/.next-tf/**/* | |
if-no-files-found: error | |
publishRelease: | |
name: Potentially publish release | |
runs-on: ubuntu-latest | |
needs: [build, test-integration, test-integration-runtime] | |
if: github.ref == 'refs/heads/main' | |
env: | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 25 | |
- name: Fetch git tags | |
run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* | |
- name: Setup node | |
uses: actions/setup-node@v2 | |
with: | |
node-version: '14' | |
cache: 'yarn' | |
- name: Install dependencies | |
run: yarn --frozen-lockfile | |
- name: Download build artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
name: dist | |
path: packages | |
# git user is required (bot not used) by release-it | |
- name: Set git user to GitHub Actions | |
uses: fregante/[email protected] | |
- name: Set registry for publish | |
run: yarn config set registry https://registry.npmjs.org | |
- name: Publish packages | |
run: ./scripts/publish-release.sh |