Build and test Deno applications
This page explains how to build and test Deno applications with FluentCI.
Before you begin
The instructions on this page assume that you are familiar with Deno
. In addition:
- Have your
Deno
project handy, includingdeno.json
andtest
files.
Using the Deno Plugin
You can use FluentCI to build Deno applications using deno plugin, no need to install Deno on your machine, FluentCI will handle everything for you.
The following commands can be used to build and test Deno applications:
fluentci run --wasm deno test
fluentci run --wasm deno compile -A --output myapp --target x86_64-unknown-linux-gnu main.ts # suppose main.ts is your entry file
CI/CD pipeline integrations
The following examples show how to integrate FluentCI with popular CI providers to build and test Deno applications:
- Github Actions
- GitLab CI
- Circle CI
- Azure Pipelines
- AWS CodePipeline
ci.yml
name: ci
on:
push:
branches:
- main
jobs:
tasks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Fluent CI
uses: fluentci-io/setup-fluentci@v5
- name: fmt
run: fluentci run --wasm deno fmt
- name: lint
run: fluentci run --wasm deno lint
- name: tests
run: fluentci run --wasm deno test
- name: compile
run: fluentci run --wasm deno compile -A --output myapp --target
x86_64-unknown-linux-gnu main.ts
.gitlab-ci.yml
.docker:
image: denoland/deno:debian-1.42.4
services:
- docker:${DOCKER_VERSION}-dind
variables:
DOCKER_HOST: tcp://docker:2376
DOCKER_TLS_VERIFY: "1"
DOCKER_TLS_CERTDIR: /certs
DOCKER_CERT_PATH: /certs/client
DOCKER_DRIVER: overlay2
DOCKER_VERSION: 20.10.16
GITLAB_ACCESS_TOKEN: $GITLAB_ACCESS_TOKEN
.fluentci:
extends: .docker
before_script:
- apt-get update
- apt-get install -y curl tar gzip ca-certificates openssl git unzip libncursesw6
- deno install -A -r https://cli.fluentci.io -n fluentci
- fluentci --version - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.12.3 sh
- mv bin/dagger /usr/local/bin
- dagger version
fmt:
extends: .fluentci
script:
- fluentci run --wasm deno fmt
lint:
extends: .fluentci
script:
- fluentci run --wasm deno lint
tests:
extends: .fluentci
script:
- fluentci run --wasm deno test
compile:
extends: .fluentci
script:
- fluentci run --wasm deno compile -A --output myapp --target x86_64-unknown-linux-gnu main.ts
.circleci/config.yml
version: 2.1
jobs:
job:
steps:
- checkout
- run: |
sudo apt-get update && sudo apt-get install -y curl unzip
curl -fsSL https://cli.fluentci.io | bash
fluentci --version
name: Setup FluentCI
- run: fluentci run --wasm deno fmt
name: fmt
- run: fluentci run --wasm deno lint
name: lint
- run: fluentci run --wasm deno test
name: tests
- run: fluentci run --wasm deno compile -A --output myapp --target x86_64-unknown-linux-gnu main.ts
name: compile
machine:
image: ubuntu-2004:2023.07.1
workflows:
fluentci:
jobs:
- job
azure-pipelines.yml
trigger:
- main
pool:
vmImage: ubuntu-latest
steps:
- script: |
curl -fsSL https://cli.fluentci.io | bash
fluentci --version
echo "##vso[task.prependpath]${HOME}/.deno/bin
displayName: Setup FluentCI
- script: fluentci run --wasm deno fmt
displayName: fmt
- script: fluentci run --wasm deno lint
displayName: lint
- script: fluentci run --wasm deno test
displayName: tests
- script: fluentci run --wasm deno compile -A --output myapp --target x86_64-unknown-linux-gnu main.ts
displayName: compile
buildspec.yml
version: 0.2
phases:
install:
commands:
- curl -fsSL https://cli.fluentci.io | bash
- fluentci --version
build:
commands:
- fluentci run --wasm deno fmt
- fluentci run --wasm deno lint
- fluentci run --wasm deno test
- fluentci run --wasm deno compile -A --output myapp --target
x86_64-unknown-linux-gnu main.ts
post_build:
commands:
- echo Build completed on `date`