Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate AR to Github Actions #8886

Merged
merged 7 commits into from
Sep 25, 2023
Merged
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 73 additions & 0 deletions .github/workflows/ar-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: "AR CI"

on:
push:
paths-ignore:
- "dotcom-rendering/**"

workflow_dispatch:

# Allow queued workflows to interrupt previous runs
concurrency:
group: ${{ github.workflow }}-${{ github.event.number || github.ref }}
cancel-in-progress: true

# Allow GitHub to request an OIDC JWT ID token, to use with aws-actions/configure-aws-credentials
permissions:
id-token: write
contents: read

jobs:
build:
runs-on: ubuntu-latest

# Checkout the repository
steps:
- uses: actions/checkout@v4

# Get the desired version of Node installed
- uses: actions/setup-node@v3
with:
node-version-file: .nvmrc
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- uses: actions/setup-node@v3
with:
node-version-file: .nvmrc
- uses: actions/setup-node@v3
with:
cache: yarn
node-version-file: .nvmrc


- name: Install dependencies
run: |
npm i -g yarn@1.x
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we need this step to install yarn separately!

Suggested change
npm i -g yarn@1.x

yarn --silent --frozen-lockfile

# Execute some tasks from the `apps-rendering/package.json` file, using `yarn`
- name: Build and package
working-directory: apps-rendering
run: |
yarn test
yarn build:client:prod
yarn build:server:prod
yarn copy-manifest
yarn copy-fonts
yarn synth
zip -j dist/server/mobile-apps-rendering.zip dist/server/*
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are replacing the deprecated node-riffraff-artifact with actions-riff-raff. node-riffraff-artifact was zipping under the hood the contents of dist/server and producing mobile-apps-rendering.zip. We can verify this in its config file. We are now adding a command to do the same.

The -j option in the command stores files with the given names only. The j option doesn't store directory information. This will produce structure:

mobile-apps-rendering
├── 713.server.js
├── manifest.json
├── server.js

which is the same as what current main produces.

image


- name: AWS Auth
uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: ${{ secrets.GU_RIFF_RAFF_ROLE_ARN }}
aws-region: eu-west-1

- name: Upload to riff-raff
uses: guardian/actions-riff-raff@v2.2.2
with:
configPath: apps-rendering/riff-raff.yaml
projectName: Mobile::mobile-apps-rendering
buildNumberOffset: 27000 # This is the last build number from TeamCity
contentDirectories: |
mobile-apps-rendering-cfn:
- apps-rendering/cdk.out/MobileAppsRendering-CODE.template.json
- apps-rendering/cdk.out/MobileAppsRendering-PROD.template.json
mobile-apps-rendering-preview-cfn:
- apps-rendering/cdk.out/MobileAppsRenderingPreview-CODE.template.json
- apps-rendering/cdk.out/MobileAppsRenderingPreview-PROD.template.json
mobile-apps-rendering:
- apps-rendering/dist/server/mobile-apps-rendering.zip
mobile-assets:
- apps-rendering/dist/assets/

Loading