From 7eb7ec5a8070e4fbb9ab60b518a33243934e7522 Mon Sep 17 00:00:00 2001 From: "Joakim L. Engeset" Date: Wed, 7 Feb 2024 14:12:38 +0100 Subject: [PATCH 1/2] feat: remove jenkinsfile --- Jenkinsfile | 45 --------------------------------------------- 1 file changed, 45 deletions(-) delete mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index 74b99475..00000000 --- a/Jenkinsfile +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/env groovy - -// See https://github.com/capralifecycle/jenkins-pipeline-library -@Library('cals') _ - -buildConfig([ - slack: [ - channel: '#cals-dev-info', - teamDomain: 'cals-capra', - ], -]) { - dockerNode { - checkout scm - - insideToolImage("node:18@sha256:3d5b55744344528206c155395774fb5928cd8627ef327c44e9553514e00cc4cd") { - stage('Install dependencies and build') { - sh 'npm ci' - } - - stage('Lint and test') { - sh 'npm run lint' - sh 'npm run test' - } - - stage('Verify CDK snapshots') { - sh ''' - npm run snapshots - git status - git diff --exit-code - ''' - } - - // We only run semantic-release on the release branches, - // as we do not want credentials to be exposed to the job - // on other branches or in PRs. - if (env.BRANCH_NAME ==~ /^(master|\d+\.(\d+|x)(\.x)?)$/) { - stage('Semantic release') { - withSemanticReleaseEnv { - sh 'npm run semantic-release' - } - } - } - } - } -} From c1fb632ba1de7fd498f36615a2d2b903c9f1740d Mon Sep 17 00:00:00 2001 From: "Joakim L. Engeset" Date: Wed, 7 Feb 2024 14:12:57 +0100 Subject: [PATCH 2/2] feat(ci): add github actions workflow --- .github/workflows/ci.yml | 52 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..6a82b343 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,52 @@ +name: ci +on: + push: + branches: + - "**" + +defaults: + run: + # NOTE: A bit stricter than the default bash options used by GitHub Actions + # (bash --noprofile --norc -e -o pipefail {0}) + shell: bash --noprofile --norc -euo pipefail {0} + +# NOTE: Set concurrency for the current workflow to 1 +concurrency: ci-${{ github.ref }}-${{ github.workflow }} + +jobs: + build-and-release: + timeout-minutes: 60 + runs-on: ubuntu-22.04 + permissions: + contents: write + pull-requests: write + issues: write + steps: + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + + - uses: capralifecycle/actions-lib/check-runtime-dependencies@42cbe330ccc0282f04edbf0a6ee8928b5b2c4df0 # v1.1.0 + + - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 + with: + node-version: 18.19.0 + + - uses: capralifecycle/actions-lib/configure-npm@42cbe330ccc0282f04edbf0a6ee8928b5b2c4df0 # v1.1.0 + + - name: install dependencies + run: npm ci + + - name: lint + run: npm run lint + + - name: prepare + run: npm run test + + - name: verify cdk snapshots + run: npm run snapshots && git status && git add -N && git diff --exit-code + + - name: conditionally semantic release + if: ${{ github.ref == format('refs/heads/{0}', github.event.repository.default_branch) }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.SHARED_NPMJS_TOKEN }} + run: npm run semantic-release