Skip to content

Commit

Permalink
feat: Adding Release Automation (#1122)
Browse files Browse the repository at this point in the history
* Adding release automation step

* blocking step

* unneeded check

* path renaming

* feat: ♻️ Refactor ci:build:stable

* feat: 📦 Create Release Asset for Stable Env

---------

Co-authored-by: Russell Dempsey <[email protected]>
  • Loading branch information
whizzzkid and SgtPooki authored Feb 2, 2023
1 parent 65fe66c commit 1ed411e
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 7 deletions.
69 changes: 64 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ jobs:

steps:
- name: Check out Git repository
uses: actions/checkout@v1
uses: actions/checkout@v3.3.0

- name: Install Node.js
uses: actions/setup-node@v1
uses: actions/setup-node@v3.6.0
with:
node-version: 18

Expand All @@ -39,7 +39,7 @@ jobs:
npm prefix -g | % {npm config set node_gyp "$_\node_modules\node-gyp\bin\node-gyp.js"}
- name: Restore .cache
uses: actions/cache@v2
uses: actions/cache@v3.2.4
id: cache
with:
path: ${{ github.workspace }}/.cache
Expand All @@ -50,7 +50,7 @@ jobs:
- name: Restore node_modules
id: yarn-cache
uses: actions/cache@v2
uses: actions/cache@v3.2.4
with:
path: node_modules
key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}
Expand Down Expand Up @@ -84,11 +84,70 @@ jobs:
# - action artifacts can be downloaded for 90 days, then are removed by github
# - binaries in PRs from forks won't be signed
- name: Attach produced packages to Github Action
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3.1.2
with:
name: built-on-${{ matrix.os }}
path: build/ipfs_companion*.*
if-no-files-found: error

- name: Show Cache
run: du -h ${{ github.workspace }}/.cache/* || true

release-pr:
runs-on: ubuntu-latest
needs: [test]
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
steps:
- uses: google-github-actions/[email protected]
with:
release-type: node
package-name: ipfs-companion
changelog-notes-type: github
command: release-pr

release-assets:
runs-on: ubuntu-latest
needs: [test]
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
steps:
- name: Check out Git repository
uses: actions/[email protected]

- name: Install Node.js
uses: actions/[email protected]
with:
node-version: 18

- name: Restore .cache
uses: actions/[email protected]
id: cache
with:
path: ${{ github.workspace }}/.cache
key: ${{ runner.os }}-${{ hashFiles('package*json', 'package-lock.json', '*config.js') }}
restore-keys: |
${{ runner.os }}-${{ hashFiles('package*json', 'package-lock.json', '*config.js') }}
${{ runner.os }}-
- name: Restore node_modules
id: yarn-cache
uses: actions/[email protected]
with:
path: node_modules
key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}

- name: Install dependencies
if: steps.yarn-cache.outputs.cache-hit != 'true'
run: npm run ci:install

- name: Build Stable Release
run: npm run ci:build:stable

- name: Release
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844
with:
files: build/*.zip
fail_on_unmatched_files: true
generate_release_notes: true
draft: true
append_body: true
body: 'Automated Release, please upload artifacts to respective webstores and mark this draft as released.'
6 changes: 4 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,12 @@
"ci": "run-s ci:*",
"ci:install": "npm ci --prefer-offline --no-audit --progress=false",
"ci:build": "npm run build",
"ci:build:stable": "RELEASE_CHANNEL=stable npm run ci:build",
"ci:build:beta": "RELEASE_CHANNEL=beta npm run ci:build",
"ci:test": "npm test",
"ci:lint": "npm run lint",
"beta-build": "docker rmi -f ipfs-companion-beta-build && docker build -t ipfs-companion-beta-build --build-arg USER_ID=$(id -u ${USER}) --build-arg GROUP_ID=$(id -g ${USER}) . && mkdir -p build && docker run --rm --net=host -e RELEASE_CHANNEL=beta -v $(pwd)/build:/home/node/app/build ipfs-companion-beta-build npm run ci:build",
"release-build": "docker rmi -f ipfs-companion-release-build && docker build -t ipfs-companion-release-build --build-arg USER_ID=$(id -u ${USER}) --build-arg GROUP_ID=$(id -g ${USER}) . && mkdir -p build && docker run --rm --net=host -e RELEASE_CHANNEL=stable -v $(pwd)/build:/home/node/app/build ipfs-companion-release-build npm run ci:build",
"beta-build": "docker rmi -f ipfs-companion-beta-build && docker build -t ipfs-companion-beta-build --build-arg USER_ID=$(id -u ${USER}) --build-arg GROUP_ID=$(id -g ${USER}) . && mkdir -p build && docker run --rm --net=host -v $(pwd)/build:/home/node/app/build ipfs-companion-beta-build npm run ci:build:beta",
"release-build": "docker rmi -f ipfs-companion-release-build && docker build -t ipfs-companion-release-build --build-arg USER_ID=$(id -u ${USER}) --build-arg GROUP_ID=$(id -g ${USER}) . && mkdir -p build && docker run --rm --net=host -v $(pwd)/build:/home/node/app/build ipfs-companion-release-build npm run ci:build:stable",
"dev-build": "npm ci && cross-env NODE_ENV='development' npm run build",
"yarn-build": "npm run dev-build",
"compose:e2e:prepare": "docker compose --file docker-compose.e2e.yml pull && docker compose --file docker-compose.e2e.yml build",
Expand Down

0 comments on commit 1ed411e

Please sign in to comment.