Run commitlint
on pull requests
#2386
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: ci:build | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
merge_group: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
name: Continuous integration (build) | |
strategy: | |
matrix: | |
platform: | |
- ubuntu-latest | |
architecture: | |
- os.linux.x86_64 | |
runs-on: ${{ matrix.platform }} | |
timeout-minutes: 15 | |
outputs: | |
node-version: ${{ steps.meteor-node.outputs.version }} | |
steps: | |
- name: Checkout 🛎️ | |
uses: actions/checkout@v4 | |
- name: Install 💾 | |
uses: meteor-actions/install@v3 | |
- name: Get Meteor's Node version | |
id: meteor-node | |
run: | | |
echo \ | |
"version=$(meteor node --version | tail -c +2)" \ | |
>> "$GITHUB_OUTPUT" | |
- name: Cache build 💽 | |
uses: meteor-actions/cache-build@v3 | |
with: | |
key: build | |
- name: Build 🏗️ | |
run: | | |
meteor npm run build -- ./dist --directory --architecture ${{ matrix.architecture }} --server-only | |
- name: Compress build 🧶 | |
run: | | |
tar czf dist.tar.gz --directory dist/bundle . | |
- name: Archive build 💽 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: artifacts | |
path: dist.tar.gz | |
retention-days: 1 | |
test: | |
needs: | |
- build | |
strategy: | |
matrix: | |
platform: | |
- ubuntu-latest | |
architecture: | |
- linux-x64 | |
runs-on: ${{ matrix.platform }} | |
timeout-minutes: 2 | |
steps: | |
- name: Load build 💽 | |
uses: actions/download-artifact@v4 | |
with: | |
name: artifacts | |
path: artifacts | |
- name: Set up Node.js 💾 | |
uses: meteor-actions/setup-node@v1 | |
with: | |
node-version: ${{ needs.build.outputs.node-version }} | |
architecture: ${{ matrix.architecture }} | |
- name: Inflate build 🧥 | |
run: | | |
mkdir -p dist | |
tar xzf artifacts/dist.tar.gz --directory dist | |
- name: Inspect build | |
run: | | |
ls -la dist | |
- name: Inspect build | |
run: | | |
cat dist/README | |
- name: Inspect build | |
run: | | |
ls -la dist/server | |
- name: Inspect build | |
run: | | |
cat dist/star.json | |
- name: Inspect build | |
run: | | |
ls -la dist/programs | |
- name: Inspect build | |
run: | | |
ls -la dist/programs/server | |
- name: Check node version | |
run: | | |
diff dist/.node_version.txt <(node --version) | |
diff <(jq -r .nodeVersion dist/star.json) <(node --version | tail -c +2) | |
- name: Check npm version | |
run: | # Patch sometimes does not match | |
diff <(npm --version | cut -d. -f-2) <(jq -r .npmVersion dist/star.json | cut -d. -f-2) | |
- name: Install dependencies | |
run: | | |
cd dist/programs/server | |
npm install | |
- name: Start MongoDB container | |
env: | |
MONGO_VERSION: '5.0' | |
run: | | |
echo 'dbpath=/data/db' > "${GITHUB_WORKSPACE}/mongodb.conf" | |
echo 'replSet=meteor' >> "${GITHUB_WORKSPACE}/mongodb.conf" | |
mkdir -p "${GITHUB_WORKSPACE}/data/db" | |
docker container run \ | |
--detach \ | |
--restart unless-stopped \ | |
--publish 27017:27017 \ | |
--volume "${GITHUB_WORKSPACE}/data/db":/data/db \ | |
--volume "${GITHUB_WORKSPACE}/mongodb.conf":/mongodb.conf \ | |
--log-opt max-size=100m \ | |
--log-opt max-file=7 \ | |
--name mongodb \ | |
--hostname mongodb \ | |
"mongo:${MONGO_VERSION}" mongod -f /mongodb.conf | |
sleep 10 | |
docker exec mongodb mongo --eval \ | |
'try {var c = rs.config();} catch (e){} if (c && c.members[0].host === "127.0.0.1:27017") { c.members[0].host = "127.0.0.1:27017"; rs.reconfig(c); } else { rs.initiate({_id: "meteor", members: [{_id: 0, host: "127.0.0.1:27017"}]}) }' | |
- name: Run server | |
env: | |
ROOT_URL: http://localhost | |
MONGO_URL: mongodb://127.0.0.1:27017/meteor | |
PORT: 3000 | |
run: | | |
cd dist | |
node main.js | |
- name: Stop MongoDB container | |
run: | | |
docker container stop mongodb |