Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
52 changes: 52 additions & 0 deletions .github/workflows/pr-checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: PR Checks
on:
pull_request:
types:
- synchronize
- opened

jobs:
build:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4

- uses: oven-sh/setup-bun@v2
with:
bun-version: '1.3'

- name: Install dependencies
run: bun ci

- name: Build
run: bun build:binary

lint:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4

- uses: oven-sh/setup-bun@v2
with:
bun-version: '1.3'

- name: Install dependencies
run: bun ci

- name: Lint
run: bun run lint

test:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4

- uses: oven-sh/setup-bun@v2
with:
bun-version: '1.3'

- name: Install dependencies
run: bun ci

- name: Run Unit tests
run: bun test
83 changes: 28 additions & 55 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,64 +1,30 @@
name: Release ynab-connect
on:
pull_request:
types:
- synchronize
- opened
push:
branches:
- main

tags:
- 'v*'
jobs:
build:
validate:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4

- uses: oven-sh/setup-bun@v2
with:
bun-version: '1.3'

- name: Install dependencies
run: bun ci
run: bun install

- name: Build
run: bun build:binary
- name: Run type checks
run: bun types

lint:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Run linting
run: bun lint

- uses: oven-sh/setup-bun@v2
with:
bun-version: '1.3'

- name: Install dependencies
run: bun ci

- name: Lint
run: bun run lint

test:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4

- uses: oven-sh/setup-bun@v2
with:
bun-version: '1.3'

- name: Install dependencies
run: bun ci

- name: Run Unit tests
- name: Run tests
run: bun test

release:
needs:
- build
- lint
- test
needs: validate
runs-on: ubuntu-22.04
name: release-container
permissions:
Expand All @@ -70,15 +36,7 @@ jobs:
- name: Generate tag
id: tag
run: |
if [ "${{ github.event_name }}" == "pull_request" ]; then
echo "PR detected, using pre-release tag"
TAG="pr-${{ github.event.pull_request.number }}-$(date +'%Y%m%d%H%M%S')"
else
echo "No PR detected, using latest"
TAG="latest"
fi
echo "TAG=$TAG" >> $GITHUB_ENV
echo "tag=$TAG" >> $GITHUB_OUTPUT
echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV

- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
Expand All @@ -97,6 +55,21 @@ jobs:
uses: docker/build-push-action@v6
with:
push: true
tags: ghcr.io/simse/ynab-connect:${{ env.TAG }}
tags: |
ghcr.io/simse/ynab-connect:${{ env.TAG }}
ghcr.io/simse/ynab-connect:latest
file: ./Dockerfile
platforms: linux/amd64,linux/arm64
platforms: linux/amd64,linux/arm64

create-release:
needs: release
runs-on: ubuntu-22.04
name: create-github-release
permissions:
contents: write
steps:
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
make_latest: true