blob: a7ce4ca9003443dd8c0ed7fe54c8244932913307 [file] [log] [blame]
Mohammed Naser19871ba2023-03-27 22:38:39 +00001# Copyright (c) 2023 VEXXHOST, Inc.
2#
3# Licensed under the Apache License, Version 2.0 (the "License"); you may
4# not use this file except in compliance with the License. You may obtain
5# a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12# License for the specific language governing permissions and limitations
13# under the License.
14
15name: manila
16
17on:
18 pull_request:
19 paths:
20 - .github/workflows/manila.yml
21 push:
22 branches:
23 - main
24 paths:
25 - .github/workflows/manila.yml
Mohammed Naser1ec06f72023-03-28 02:56:40 +000026 release:
27 types:
28 - published
Mohammed Naser19871ba2023-03-27 22:38:39 +000029 workflow_dispatch:
30
31jobs:
32 build-image:
33 runs-on: ubuntu-latest
34 steps:
35 - name: Checkout project
renovate[bot]38929d42024-01-02 11:18:18 -050036 uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
Mohammed Naser19871ba2023-03-27 22:38:39 +000037 with:
38 fetch-depth: 0
39
40 - name: Install dependencies
41 run: |
ricolina586ec52023-06-02 00:14:44 +080042 sudo apt-get update
Mohammed Naser19871ba2023-03-27 22:38:39 +000043 sudo apt-get install -y debootstrap qemu-utils
44 pipx install diskimage-builder==3.28.0
45 pipx install python-swiftclient
Mohammed Naser2607b552023-03-27 23:39:42 +000046 pipx inject python-swiftclient python-keystoneclient
Mohammed Naser19871ba2023-03-27 22:38:39 +000047 pipx install poetry
48 poetry self add "poetry-dynamic-versioning[plugin]"
49
50 - name: Clone openstack/manila-image-elements
renovate[bot]38929d42024-01-02 11:18:18 -050051 uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
Mohammed Naser19871ba2023-03-27 22:38:39 +000052 with:
53 repository: openstack/manila-image-elements
54 path: manila-image-elements
55
56 - name: Cache DIB_IMAGE_CACHE
renovate[bot]31fbcf22024-01-15 12:25:34 -050057 uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
Mohammed Naser19871ba2023-03-27 22:38:39 +000058 with:
59 path: ~/.cache/image-create
60 key: dib-image-cache
61
62 - name: Build image
Mohammed Naserd88e8312023-03-28 02:22:46 +000063 run: disk-image-create -o manila-$(poetry version --short).qcow2 vm manila-ubuntu-minimal dhcp-all-interfaces manila-ssh ubuntu-nfs ubuntu-cifs
Mohammed Naser19871ba2023-03-27 22:38:39 +000064 env:
65 ELEMENTS_PATH: manila-image-elements/elements
66
67 - name: Publish image
Mohammed Naser1ec06f72023-03-28 02:56:40 +000068 if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'release'
Mohammed Naser19871ba2023-03-27 22:38:39 +000069 run: |
70 swift post -r '.r:*,.rlistings' atmosphere-images
71 swift upload atmosphere-images manila-$(poetry version --short).qcow2
72 env:
73 OS_AUTH_URL: https://auth.vexxhost.net/v3
74 OS_REGION_NAME: ca-ymq-1
75 OS_USER_DOMAIN_NAME: Default
76 OS_USERNAME: ${{ secrets.OS_USERNAME }}
77 OS_PASSWORD: ${{ secrets.OS_PASSWORD }}
78 OS_PROJECT_DOMAIN_NAME: Default
79 OS_PROJECT_NAME: ${{ secrets.OS_PROJECT_NAME }}