Skip to content

Commit

Permalink
Apimgmt 558 (#475)
Browse files Browse the repository at this point in the history
* ci: test CI (#468)

* chore: update CI

* chore: update CIv2

* chore: update CI print path

* chore: update CI print path v2

* chore: update CI fix path for codegen

---------

Co-authored-by: Marcin Jarczewski <[email protected]>

* Apimgmt 558 (#470)

* chore: update CI

* chore: update CIv2

* chore: update CI print path

* chore: update CI print path v2

* chore: update CI fix path for codegen

* chore: update python version

* chore: update setup-python and setup-node

---------

Co-authored-by: Marcin Jarczewski <[email protected]>

* Apimgmt 558 (#471)

* chore: update CI

* chore: update CI print path

* chore: update CI print path v2

* chore: update CI fix path for codegen

* chore: update actions

---------

Co-authored-by: Marcin Jarczewski <[email protected]>

* Apimgmt 558 (#472)

* chore: update CI

* chore: update CI print path

* chore: update CI print path v2

* chore: update CI fix path for codegen

* chore: update slack action

---------

Co-authored-by: Marcin Jarczewski <[email protected]>

* Apimgmt 558 (#473)

* chore: update CI

* chore: update CI print path

* chore: update CI print path v2

* chore: update CI fix path for codegen

* chore: update slack action v2

---------

Co-authored-by: Marcin Jarczewski <[email protected]>

* chore: update CI

* chore: update CI print path

* chore: update CI print path v2

* chore: update CI fix path for codegen

* chore: fix env variable

---------

Co-authored-by: Marcin Jarczewski <[email protected]>
  • Loading branch information
Percival33 and Marcin Jarczewski authored Oct 22, 2024
1 parent eb91200 commit 1a161c6
Show file tree
Hide file tree
Showing 2 changed files with 40,012 additions and 49 deletions.
147 changes: 98 additions & 49 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ on:
- jp-partial
# Run for PRs on main and staging
pull_request:
branches: [main, staging]
branches: [ main, staging, mj-main ]

jobs:
# The lint job checks that all content is sanitized,
Expand All @@ -23,19 +23,19 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 10

# We use node 14 and Python 3.8
# We use node 18 and Python 3.12
strategy:
matrix:
node-version: [14.x]
python-version: [3.8]
node-version: [ 18.x ]
python-version: [ 3.12 ]

# The following steps are performed for each lint job
steps:
- name: Check out the repository
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

Expand All @@ -45,7 +45,7 @@ jobs:
pip install yamllint
- name: Set up Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}

Expand All @@ -61,13 +61,14 @@ jobs:
push-to-en:
# We run this on the latest ubuntu
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
# TODO: change it back
if: github.ref == 'refs/heads/mj-main'
timeout-minutes: 10

# We use node 14.X
# We use node 18.X
strategy:
matrix:
node-version: [14.x]
node-version: [ 18.x ]

# Requires the lint and test jobs to pass first
needs:
Expand All @@ -76,49 +77,43 @@ jobs:
# The following steps are performed for each job
steps:
- name: Check out the repo
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Set up Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}

- name: Build content
run: |
yarn install
yarn build:spec
yarn build:content
- name: Push API specification
uses: s0/git-publish-subdir-action@v2.4.0
uses: s0/git-publish-subdir-action@v2.6.0
env:
REPO: self
BRANCH: en
FOLDER: compiled/spec
BRANCH: mj-en
FOLDER: openapi
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Notify other repositories of update
uses: peter-evans/repository-dispatch@v1
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.REPO_ACCESS_TOKEN }}
repository: box/box-postman
event-type: openapi-update
client-payload: "{}"

- name: "Trigger Netlify deployment"
uses: joelwmale/webhook-action@2.0.2
uses: joelwmale/webhook-action@2.4.1
env:
WEBHOOK_URL: ${{ secrets.NETLIFY_BOXDEV_WEBHOOK }}
data: "{}"

- name: "Trigger Netlify deployment (Box.dev mirror)"
uses: joelwmale/webhook-action@2.0.2
uses: joelwmale/webhook-action@2.4.1
env:
WEBHOOK_URL: ${{ secrets.NETLIFY_BOXDEV_MIRROR_WEBHOOK }}
data: "{}"

- name: Send Slack notification
uses: Ilshidur/action-slack@2.0.2
uses: Ilshidur/action-slack@2.1.0
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
SLACK_USERNAME: GitHub Actions
Expand All @@ -127,7 +122,7 @@ jobs:
args: "Pushed latest OpenAPI changes to `en` branch :rocket:"

- name: Send Slack notification
uses: Ilshidur/action-slack@2.0.2
uses: Ilshidur/action-slack@2.1.0
if: ${{ failure() }}
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
Expand All @@ -136,17 +131,42 @@ jobs:
with:
args: "Error running `deploy` job in OpenAPI CI"

- name: Send Slack using Slack GHA notification
uses: slackapi/[email protected]
with:
payload: |
{
"text": "**new gha**\nPushed latest OpenAPI changes to `en` branch :rocket:",
"icon_url": "https://avatars3.githubusercontent.com/u/8659759?s=200&v=4",
"username": "GitHub Actions"
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }}

- name: Send Slack using Slack GHA notification
uses: slackapi/[email protected]
if: ${{ failure() }}
with:
payload: |
{
"text": "**new gha**\nError running `deploy` job in OpenAPI CI",
"icon_url": "https://avatars3.githubusercontent.com/u/8659759?s=200&v=4",
"username": "GitHub Actions"
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }}

# The deploy task actually deploys any changes to the en-staging branch
push-to-en-staging:
# We run this on the latest ubuntu
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/staging'
if: github.ref == 'refs/heads/mj-staging'
timeout-minutes: 10

# We use node 14.X
# We use node 18.X
strategy:
matrix:
node-version: [14.x]
node-version: [ 18.x ]

# Requires the lint and test jobs to pass first
needs:
Expand All @@ -155,34 +175,29 @@ jobs:
# The following steps are performed for each job
steps:
- name: Check out the repo
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Set up Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}

- name: Build content
run: |
yarn install
yarn build:spec
- name: Push API specification
uses: s0/git-publish-subdir-action@v2.4.0
uses: s0/git-publish-subdir-action@v2.6.0
env:
REPO: self
BRANCH: en-staging
FOLDER: compiled/spec
BRANCH: mj-staging
FOLDER: openapi
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: "Trigger Netlify deployment"
uses: joelwmale/webhook-action@2.0.2
uses: joelwmale/webhook-action@2.4.1
env:
WEBHOOK_URL: ${{ secrets.NETLIFY_BOXDEV_STAGING_WEBHOOK }}
data: "{}"

- name: Send Slack notification
uses: Ilshidur/action-slack@2.0.2
uses: Ilshidur/action-slack@2.1.0
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
SLACK_USERNAME: GitHub Actions
Expand All @@ -191,7 +206,7 @@ jobs:
args: "Pushed latest OpenAPI changes to `en-staging` branch :rocket:"

- name: Send Slack notification
uses: Ilshidur/action-slack@2.0.2
uses: Ilshidur/action-slack@2.1.0
if: ${{ failure() }}
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
Expand All @@ -200,6 +215,31 @@ jobs:
with:
args: "Error running `deploy-staging` job in OpenAPI CI"

- name: Send Slack using Slack GHA notification
uses: slackapi/[email protected]
with:
payload: |
{
"text": "**new gha**\nPushed latest OpenAPI changes to `en-staging` branch :rocket:",
"icon_url": "https://avatars3.githubusercontent.com/u/8659759?s=200&v=4",
"username": "GitHub Actions"
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }}

- name: Send Slack using Slack GHA notification
uses: slackapi/[email protected]
if: ${{ failure() }}
with:
payload: |
{
"text": "**new gha**\nError running `deploy-staging` job in OpenAPI CI",
"icon_url": "https://avatars3.githubusercontent.com/u/8659759?s=200&v=4",
"username": "GitHub Actions"
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }}

# Build the OpenAPI spec and validate using Codegen
validate-spec:
name: Validate OpenAPI spec using Codegen
Expand All @@ -209,17 +249,19 @@ jobs:
# The following steps are performed for each job
steps:
- name: Check out the repo
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: box-openapi
# TODO: remove `ref`
ref: apimgmt-558

- name: Set up Node.js 16.x
uses: actions/setup-node@v3
- name: Set up Node.js 20.x
uses: actions/setup-node@v4
with:
node-version: 16.x
node-version: 20.x

- name: Check out the Codegen repo
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
repository: box/box-codegen
ref: main
Expand All @@ -232,5 +274,12 @@ jobs:
npm install
cd scripts
npm install
cp $GITHUB_WORKSPACE/box-openapi/openapi.json .
npm run generate ./openapi.json output typescript,swift,python,c#
echo "pwd"
pwd
echo "GITHUB_WORKSPACE"
ls $GITHUB_WORKSPACE
echo "GITHUB_WORKSPACE/box-openapi"
ls $GITHUB_WORKSPACE/box-openapi
echo "GITHUB_WORKSPACE/box-openapi/openapi"
ls $GITHUB_WORKSPACE/box-openapi/openapi
npm run generate $GITHUB_WORKSPACE/box-openapi/openapi/openapi.json output typescript,swift,python,c#
Loading

0 comments on commit 1a161c6

Please sign in to comment.