mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 18:18:55 +00:00
chore(ci): Add setup-elixir composite action (#4067)
Pulled out of #4049
This commit is contained in:
44
.github/actions/setup-elixir/action.yml
vendored
Normal file
44
.github/actions/setup-elixir/action.yml
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
name: "Setup Elixir"
|
||||
description: "Sets up the correct Elixir version and installs deps"
|
||||
inputs:
|
||||
mix_env:
|
||||
description: "Limit deps to mix env"
|
||||
type: string
|
||||
required: true
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Tool Versions
|
||||
id: versions
|
||||
uses: marocchino/tool-versions-action@v1.2.0
|
||||
- uses: erlef/setup-beam@v1
|
||||
id: setup-beam
|
||||
with:
|
||||
otp-version: ${{ steps.versions.outputs.erlang }}
|
||||
elixir-version: ${{ steps.versions.outputs.elixir }}
|
||||
- uses: actions/cache/restore@v4
|
||||
name: Restore Elixir Deps Cache
|
||||
id: cache
|
||||
with:
|
||||
path: |
|
||||
elixir/deps
|
||||
elixir/_build/${{ inputs.mix_env }}
|
||||
key: ${{ runner.os }}-${{ inputs.mix_env }}-${{ steps.setup-beam.outputs.elixir-version }}-${{ hashFiles('elixir/mix.lock') }}
|
||||
- name: Install Dependencies
|
||||
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
|
||||
shell: bash
|
||||
working-directory: ./elixir
|
||||
run: mix deps.get --only ${{ inputs.mix_env }}
|
||||
- name: Compile Dependencies
|
||||
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
|
||||
shell: bash
|
||||
working-directory: ./elixir
|
||||
run: mix deps.compile --skip-umbrella-children
|
||||
- uses: actions/cache/save@v4
|
||||
name: Save Elixir Deps Cache
|
||||
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
|
||||
with:
|
||||
path: |
|
||||
elixir/deps
|
||||
elixir/_build/${{ inputs.mix_env }}
|
||||
key: ${{ steps.cache.outputs.cache-primary-key }}
|
||||
184
.github/workflows/_elixir.yml
vendored
184
.github/workflows/_elixir.yml
vendored
@@ -27,40 +27,9 @@ jobs:
|
||||
--health-retries 5
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Tool Versions
|
||||
id: versions
|
||||
uses: marocchino/tool-versions-action@v1.2.0
|
||||
- uses: erlef/setup-beam@v1
|
||||
id: setup-beam
|
||||
- uses: ./.github/actions/setup-elixir
|
||||
with:
|
||||
otp-version: ${{ steps.versions.outputs.erlang }}
|
||||
elixir-version: ${{ steps.versions.outputs.elixir }}
|
||||
- uses: actions/cache/restore@v4
|
||||
name: Restore Elixir Deps Cache
|
||||
id: cache
|
||||
env:
|
||||
cache-name: elixir-deps-${{ env.MIX_ENV }}
|
||||
with:
|
||||
path: |
|
||||
elixir/deps
|
||||
elixir/_build/${{ env.MIX_ENV }}
|
||||
key: ubuntu-22.04-${{ runner.arch }}-${{ steps.setup-beam.outputs.elixir-version }}-${{ env.cache-name }}-${{ hashFiles('elixir/mix.lock') }}
|
||||
- name: Install Dependencies
|
||||
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
|
||||
run: mix deps.get --only $MIX_ENV
|
||||
- name: Compile Dependencies
|
||||
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
|
||||
run: mix deps.compile --skip-umbrella-children
|
||||
- uses: actions/cache/save@v4
|
||||
name: Save Elixir Deps Cache
|
||||
if: ${{ github.ref_name == 'main' }}
|
||||
env:
|
||||
cache-name: elixir-deps-${{ env.MIX_ENV }}
|
||||
with:
|
||||
path: |
|
||||
elixir/deps
|
||||
elixir/_build/${{ env.MIX_ENV }}
|
||||
key: ubuntu-22.04-${{ runner.arch }}-${{ steps.setup-beam.outputs.elixir-version }}-${{ env.cache-name }}-${{ hashFiles('elixir/mix.lock') }}
|
||||
mix_env: ${{ env.MIX_ENV }}
|
||||
- name: Compile Application
|
||||
run: mix compile --warnings-as-errors
|
||||
- name: Setup Database
|
||||
@@ -93,40 +62,9 @@ jobs:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Tool Versions
|
||||
id: versions
|
||||
uses: marocchino/tool-versions-action@v1.2.0
|
||||
- uses: erlef/setup-beam@v1
|
||||
id: setup-beam
|
||||
- uses: ./.github/actions/setup-elixir
|
||||
with:
|
||||
otp-version: ${{ steps.versions.outputs.erlang }}
|
||||
elixir-version: ${{ steps.versions.outputs.elixir }}
|
||||
- uses: actions/cache/restore@v4
|
||||
name: Restore Elixir Deps Cache
|
||||
id: cache
|
||||
env:
|
||||
cache-name: elixir-deps-${{ env.MIX_ENV }}
|
||||
with:
|
||||
path: |
|
||||
elixir/deps
|
||||
elixir/_build/${{ env.MIX_ENV }}
|
||||
key: ubuntu-22.04-${{ runner.arch }}-${{ steps.setup-beam.outputs.elixir-version }}-${{ env.cache-name }}-${{ hashFiles('elixir/mix.lock') }}
|
||||
- name: Install Dependencies
|
||||
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
|
||||
run: mix deps.get --only $MIX_ENV
|
||||
- name: Compile Dependencies
|
||||
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
|
||||
run: mix deps.compile --skip-umbrella-children
|
||||
- uses: actions/cache/save@v4
|
||||
name: Save Elixir Deps Cache
|
||||
if: ${{ github.ref_name == 'main' }}
|
||||
env:
|
||||
cache-name: elixir-deps-${{ env.MIX_ENV }}
|
||||
with:
|
||||
path: |
|
||||
elixir/deps
|
||||
elixir/_build/${{ env.MIX_ENV }}
|
||||
key: ubuntu-22.04-${{ runner.arch }}-${{ steps.setup-beam.outputs.elixir-version }}-${{ env.cache-name }}-${{ hashFiles('elixir/mix.lock') }}
|
||||
mix_env: ${{ env.MIX_ENV }}
|
||||
- name: Compile Application
|
||||
run: mix compile --warnings-as-errors
|
||||
- uses: actions/cache/restore@v4
|
||||
@@ -160,40 +98,9 @@ jobs:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Tool Versions
|
||||
id: versions
|
||||
uses: marocchino/tool-versions-action@v1.2.0
|
||||
- uses: erlef/setup-beam@v1
|
||||
id: setup-beam
|
||||
- uses: ./.github/actions/setup-elixir
|
||||
with:
|
||||
otp-version: ${{ steps.versions.outputs.erlang }}
|
||||
elixir-version: ${{ steps.versions.outputs.elixir }}
|
||||
- uses: actions/cache/restore@v4
|
||||
name: Restore Elixir Deps Cache
|
||||
id: cache
|
||||
env:
|
||||
cache-name: elixir-deps-${{ env.MIX_ENV }}
|
||||
with:
|
||||
path: |
|
||||
elixir/deps
|
||||
elixir/_build/${{ env.MIX_ENV }}
|
||||
key: ubuntu-22.04-${{ runner.arch }}-${{ steps.setup-beam.outputs.elixir-version }}-${{ env.cache-name }}-${{ hashFiles('elixir/mix.lock') }}
|
||||
- name: Install Dependencies
|
||||
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
|
||||
run: mix deps.get --only $MIX_ENV
|
||||
- name: Compile Dependencies
|
||||
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
|
||||
run: mix deps.compile --skip-umbrella-children
|
||||
- uses: actions/cache/save@v4
|
||||
name: Save Elixir Deps Cache
|
||||
if: ${{ github.ref_name == 'main' }}
|
||||
env:
|
||||
cache-name: elixir-deps-${{ env.MIX_ENV }}
|
||||
with:
|
||||
path: |
|
||||
elixir/deps
|
||||
elixir/_build/${{ env.MIX_ENV }}
|
||||
key: ubuntu-22.04-${{ runner.arch }}-${{ steps.setup-beam.outputs.elixir-version }}-${{ env.cache-name }}-${{ hashFiles('elixir/mix.lock') }}
|
||||
mix_env: ${{ env.MIX_ENV }}
|
||||
- name: Compile Application
|
||||
run: mix compile --force --warnings-as-errors
|
||||
- name: Check Formatting
|
||||
@@ -232,46 +139,9 @@ jobs:
|
||||
--health-retries 5
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install package dependencies
|
||||
run: |
|
||||
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
|
||||
wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/trusted.gpg.d/pgdg.asc &>/dev/null
|
||||
sudo apt update
|
||||
sudo apt-get install -q -y postgresql-client
|
||||
- name: Tool Versions
|
||||
id: versions
|
||||
uses: marocchino/tool-versions-action@v1.2.0
|
||||
- uses: erlef/setup-beam@v1
|
||||
id: setup-beam
|
||||
- uses: ./.github/actions/setup-elixir
|
||||
with:
|
||||
otp-version: ${{ steps.versions.outputs.erlang }}
|
||||
elixir-version: ${{ steps.versions.outputs.elixir }}
|
||||
- uses: actions/cache/restore@v4
|
||||
name: Restore Elixir Deps Cache
|
||||
id: cache
|
||||
env:
|
||||
cache-name: elixir-deps-${{ env.MIX_ENV }}
|
||||
with:
|
||||
path: |
|
||||
elixir/deps
|
||||
elixir/_build/${{ env.MIX_ENV }}
|
||||
key: ubuntu-22.04-${{ runner.arch }}-${{ steps.setup-beam.outputs.elixir-version }}-${{ env.cache-name }}-${{ hashFiles('elixir/mix.lock') }}
|
||||
- name: Install Dependencies
|
||||
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
|
||||
run: mix deps.get --only $MIX_ENV
|
||||
- name: Compile Dependencies
|
||||
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
|
||||
run: mix deps.compile --skip-umbrella-children
|
||||
- uses: actions/cache/save@v4
|
||||
name: Save Elixir Deps Cache
|
||||
if: ${{ github.ref_name == 'main' }}
|
||||
env:
|
||||
cache-name: elixir-deps-${{ env.MIX_ENV }}
|
||||
with:
|
||||
path: |
|
||||
elixir/deps
|
||||
elixir/_build/${{ env.MIX_ENV }}
|
||||
key: ubuntu-22.04-${{ runner.arch }}-${{ steps.setup-beam.outputs.elixir-version }}-${{ env.cache-name }}-${{ hashFiles('elixir/mix.lock') }}
|
||||
mix_env: ${{ env.MIX_ENV }}
|
||||
- name: Compile
|
||||
run: mix compile --warnings-as-errors
|
||||
- name: Create Database
|
||||
@@ -334,44 +204,10 @@ jobs:
|
||||
export DISPLAY=:99
|
||||
chromedriver --url-base=/wd/hub &
|
||||
sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 &
|
||||
- name: Tool Versions
|
||||
id: versions
|
||||
uses: marocchino/tool-versions-action@v1.2.0
|
||||
- uses: erlef/setup-beam@v1
|
||||
id: setup-beam
|
||||
- uses: ./.github/actions/setup-elixir
|
||||
with:
|
||||
otp-version: ${{ steps.versions.outputs.erlang }}
|
||||
elixir-version: ${{ steps.versions.outputs.elixir }}
|
||||
mix_env: ${{ env.MIX_ENV }}
|
||||
- uses: ./.github/actions/setup-node
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodejs }}
|
||||
# Elixir cache
|
||||
- uses: actions/cache/restore@v4
|
||||
name: Restore Elixir Deps Cache
|
||||
id: cache
|
||||
env:
|
||||
cache-name: elixir-deps-${{ env.MIX_ENV }}
|
||||
with:
|
||||
path: |
|
||||
elixir/deps
|
||||
elixir/_build/${{ env.MIX_ENV }}
|
||||
key: ubuntu-22.04-${{ runner.arch }}-${{ steps.setup-beam.outputs.elixir-version }}-${{ env.cache-name }}-${{ hashFiles('elixir/mix.lock') }}
|
||||
- name: Install Dependencies
|
||||
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
|
||||
run: mix deps.get --only $MIX_ENV
|
||||
- name: Compile Dependencies
|
||||
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
|
||||
run: mix deps.compile --skip-umbrella-children
|
||||
- uses: actions/cache/save@v4
|
||||
name: Save Elixir Deps Cache
|
||||
if: ${{ github.ref_name == 'main' }}
|
||||
env:
|
||||
cache-name: elixir-deps-${{ env.MIX_ENV }}
|
||||
with:
|
||||
path: |
|
||||
elixir/deps
|
||||
elixir/_build/${{ env.MIX_ENV }}
|
||||
key: ubuntu-22.04-${{ runner.arch }}-${{ steps.setup-beam.outputs.elixir-version }}-${{ env.cache-name }}-${{ hashFiles('elixir/mix.lock') }}
|
||||
- name: Compile Application
|
||||
run: mix compile --warnings-as-errors
|
||||
# Front-End deps cache
|
||||
|
||||
Reference in New Issue
Block a user